Detect .net core backing dll

This commit is contained in:
Mark Adamson
2020-12-27 15:46:27 +00:00
parent 3cc10f1bac
commit d10c2eb45e
4 changed files with 30 additions and 3 deletions

View File

@@ -28,9 +28,27 @@ namespace Squirrel
{
if (!File.Exists(executable)) return null;
var fullname = Path.GetFullPath(executable);
var backingDll = fullname.Substring(0, fullname.Length - 3) + "dll";
return Utility.Retry<int?>(() =>
{
var assemblySquirrelAwareVersion = GetAssemblySquirrelAwareVersion(fullname);
if (assemblySquirrelAwareVersion != null)
{
return assemblySquirrelAwareVersion;
}
return Utility.Retry<int?>(() =>
GetAssemblySquirrelAwareVersion(fullname) ?? GetVersionBlockSquirrelAwareValue(fullname));
if (File.Exists(backingDll))
{
var assemblyDllSquirrelAwareVersion = GetAssemblySquirrelAwareVersion(backingDll);
if (assemblyDllSquirrelAwareVersion != null)
{
return assemblyDllSquirrelAwareVersion;
}
}
return GetVersionBlockSquirrelAwareValue(fullname);
});
}
static int? GetAssemblySquirrelAwareVersion(string executable)

View File

@@ -44,13 +44,22 @@ namespace Squirrel.Tests
[Fact]
public void SquirrelAwareViaLanguageNeutralVersionBlock()
{
var target = IntegrationTestHelper.GetPath("fixtures", "SquirrelAwareNetCoreApp.exe");
var target = IntegrationTestHelper.GetPath("fixtures", "SquirrelAwareTweakedNetCoreApp.exe");
Assert.True(File.Exists(target));
var ret = SquirrelAwareExecutableDetector.GetPESquirrelAwareVersion(target);
Assert.Equal(1, ret.Value);
}
[Fact]
public void SquirrelAwareViaNetCoreAssemblyAttribute()
{
var target = IntegrationTestHelper.GetPath("fixtures", "SquirrelAwareNetCoreApp.exe");
Assert.True(File.Exists(target));
var ret = SquirrelAwareExecutableDetector.GetPESquirrelAwareVersion(target);
Assert.Equal(1, ret.Value);
}
[Fact]
public void SquirrelAwareViaAssemblyAttribute()

Binary file not shown.

Binary file not shown.