Assembly.GetExecutingAssembly() doesn't work correctly.
Opened this issue · 1 comments
SlowLogicBoy commented
There are cases when Calling assembly also work incorrectly (depends on JIT) but I can't reproduce it regularly.
And looks like Release and Debug builds work differently but that's not related to SystemWrappers I don't think.
Code to reproduce with:
#r "$NuGet\SystemWrapper.Interfaces\0.24.0.177\lib\net45\SystemInterface.dll"
#r "$NuGet\SystemWrapper.Wrappers\0.24.0.177\lib\net45\SystemWrapper.dll"
using SystemInterface.Reflection;
using SystemWrapper.Reflection;
void ExecutingAssembly(IAssembly assembly)
{
var sys = assembly.GetExecutingAssembly().FullName;
var clr = Assembly.GetExecutingAssembly().FullName;
$"{sys}{Environment.NewLine}{clr}".Dump("Executing");
}
void CallingAssembly(IAssembly assembly)
{
var sys = assembly.GetCallingAssembly().FullName;
var clr = Assembly.GetCallingAssembly().FullName;
$"{sys}{Environment.NewLine}{clr}".Dump("Calling");
}
void EntryAssembly(IAssembly assembly)
{
var sys = assembly.GetEntryAssembly().FullName;
var clr = Assembly.GetEntryAssembly().FullName;
$"{sys}{Environment.NewLine}{clr}".Dump("Entry");
}
IAssembly assembly = new AssemblyWrap();
ExecutingAssembly(assembly);
CallingAssembly(assembly);
EntryAssembly(assembly);
output:
Executing:
SystemWrapper, Version=0.24.0.177, Culture=neutral, PublicKeyToken=fbc3a63dd3cf8960
ℛ℘-5deae9ff-10fc-4bfe-b099-b1621ae5f24b-6, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Calling:
ℛ℘-5deae9ff-10fc-4bfe-b099-b1621ae5f24b-6, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
ℛ℘-5deae9ff-10fc-4bfe-b099-b1621ae5f24b-6, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null
Entry:
RoslynPad.Host32, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
RoslynPad.Host32, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
jozefizso commented
Wrappers for these methods does not provide correct results because how .NET computes the executing and calling assembly.
I think these wrappers should be removed because this functionality cannot be wrapped.