我有适用于Android的Xamarin Forms应用程序,具有我的dll作为参考。我们称之为A.dll(.net标准2.0)。
我在用户文件夹(Environment.GetFolderPath(Environment.SpecialFolder.Personal)
)中有第二个dll。我们称它为[[B.dll(同样是.net标准2.0)
var privatePath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var asmPath = Path.Combine(privatePath, "B.dll");
if (File.Exists(asmPath))
{
var asm = Assembly.LoadFrom(asmPath);
foreach (var t in asm.GetTypes()) { }
}
它在奇怪的是,它在调试期间(在模拟器中)在Debug版本中起作用,但是在尝试发布版本(在模拟器中)时也无效。GetTypes()
方法中引发异常:无法加载文件或程序集'netstandard,版本= 2.0.0.0,区域性=中性,PublicKeyToken = cc7b13ffcd2ddd51'或其依赖项之一。
问题是,这样的dll加载是否可能?为什么在已经加载A.dll并且它与.net standard的相同版本时不能加载“ netstandard”程序集?为什么它在调试期间有效,但不能发布?
无”。现在可以使用。