我有两个 .NET Core 3.0 WPF 项目。其中一个我发布为名为“DefaultPlugin.exe”的可执行文件。
在我的第二个 WPF 项目中,我尝试使用 Assembly.Load 加载第一个项目并读取类型信息。然而,当我这样做时,会出现异常“Bad IL Format”来自 System.Private.CoreLib。如果我从 bin 文件夹加载 DefaultPlugin.dll,则可以正常工作。我还检查了 CPU 配置以确保它们匹配。
///Works:
string path = @"C:\Users\S-D81\source\repos\DefaultPlugin\DefaultPlugin\bin\Debug\netcoreapp3.0\win-x64\DefaultPlugin.dll";
///Does not work:
//string path = @"C:\Users\S-D81\source\repos\DefaultPlugin\DefaultPlugin\bin\Debug\netcoreapp3.0\win-x64\DefaultPlugin.exe";
//string path = @"C:\Users\S-D81\source\repos\DefaultPlugin\DefaultPlugin\bin\Release\netcoreapp3.0\win-x64\publish\DefaultPlugin.exe";
Assembly assembly = Assembly.LoadFrom(path);
是否有方法可以在发布后的.NET Core 3.0程序集上使用Assembly.Load,还是这只是新框架的限制?