gpt4 book ai didi

c# - 在 .NET Core 3.0 中加载 exe 时出现错误的 IL 格式

转载 作者:行者123 更新时间:2023-12-04 16:42:11 24 4
gpt4 key购买 nike

我有两个 .NET Core 3.0 WPF 项目。其中之一,我发布到一个名为“DefaultPlugin.exe”的可执行文件中。

在我的第二个 WPF 项目中,我尝试使用 Assembly.Load 加载第一个项目并读取类型。但是,当我这样做时,我从 System.Private.CoreLib 收到一个异常“错误的 IL 格式”。当我从 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 或者这只是新框架的限制?

最佳答案

.NET Core 3.0 应用程序中生成的 .exe 文件不是 IL 程序集,而是 native 主机可执行文件,它在加载具有 .dll 扩展名的实际 IL 应用程序程序集之前查找并启动运行时。

您应该能够通过加载具有相同项目名称的 .exe 文件旁边的 .dll 文件来加载您的插件。

关于c# - 在 .NET Core 3.0 中加载 exe 时出现错误的 IL 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58290286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com