Skip to content

Commit 64b0f86

Browse files
authored
Merge pull request #1732 from mungojam/dotnet-core-initial-support
Add support for language neutral VersionInfo in target .exes
2 parents 76c87af + 9f26070 commit 64b0f86

3 files changed

Lines changed: 28 additions & 2 deletions

File tree

src/Squirrel/SquirrelAwareExecutableDetector.cs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,21 @@ public static List<string> GetAllSquirrelAwareApps(string directory, int minimum
7070
var buf = new byte[size];
7171
if (!NativeMethods.GetFileVersionInfo(executable, 0, size, buf)) return null;
7272

73-
IntPtr result; int resultSize;
74-
if (!NativeMethods.VerQueryValue(buf, "\\StringFileInfo\\040904B0\\SquirrelAwareVersion", out result, out resultSize)) {
73+
const string englishUS = "040904B0";
74+
const string neutral = "000004B0";
75+
var supportedLanguageCodes = new[] {englishUS, neutral};
76+
77+
IntPtr result;
78+
int resultSize;
79+
if (!supportedLanguageCodes.Any(
80+
languageCode =>
81+
NativeMethods.VerQueryValue(
82+
buf,
83+
$"\\StringFileInfo\\{languageCode}\\SquirrelAwareVersion",
84+
out result, out resultSize
85+
)
86+
))
87+
{
7588
return null;
7689
}
7790

test/SquirrelAwareExecutableDetectorTests.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,19 @@ public void SquirrelAwareViaVersionBlock()
4141
Assert.Equal(1, ret.Value);
4242
}
4343

44+
[Fact]
45+
public void SquirrelAwareViaLanguageNeutralVersionBlock()
46+
{
47+
var target = IntegrationTestHelper.GetPath("fixtures", "SquirrelAwareTweakedNetCoreApp.exe");
48+
Assert.True(File.Exists(target));
49+
50+
var ret = SquirrelAwareExecutableDetector.GetPESquirrelAwareVersion(target);
51+
52+
Assert.NotNull(ret);
53+
Assert.Equal(1, ret.Value);
54+
}
55+
56+
4457
[Fact]
4558
public void SquirrelAwareViaAssemblyAttribute()
4659
{
140 KB
Binary file not shown.

0 commit comments

Comments
 (0)