C# .NET Core 2.2程序集FileLoadException
我想将C# .NET Core 2.2程序集FileLoadException,c#,.net,asp.net-core,.net-core,.net-assembly,C#,.net,Asp.net Core,.net Core,.net Assembly,我想将.netframework4.0中的项目迁移到.netcore2.2。 但是我的程序执行有一个错误 我的项目希望使用程序集类加载.dll,它在.NET Framework 4.0中运行良好,但在.NET Core 2.2中则不行 它正在抛出FileLoadException,并显示消息无法加载文件或程序集'LibName,Version=3.0.4.5,Culture=neutral,PublicKeyToken=null' 项目中是否缺少一个包 try { var pathDll
.netframework4.0
中的项目迁移到.netcore2.2
。
但是我的程序执行有一个错误
我的项目希望使用程序集
类加载.dll
,它在.NET Framework 4.0
中运行良好,但在.NET Core 2.2
中则不行
它正在抛出FileLoadException
,并显示消息无法加载文件或程序集'LibName,Version=3.0.4.5,Culture=neutral,PublicKeyToken=null'
项目中是否缺少一个包
try
{
var pathDll = Path.Combine(path, "LibName.dll");
Assembly.LoadFrom(pathDll);
}
catch (FileLoadException ex)
{
throw ex;
}
解决方案中安装的My NuGet软件包:
在.NET Core 2.1中,我也以这种方式调用assembly,它可以正常工作。是否检查路径是否正确?若路径是相对的,那个么从VisualStudio开始时,尝试使用绝对的.NET核心路径,因为可执行文件的路径有点不同
顺便说一下,如果想保持堆栈跟踪,请考虑使用“抛出”而不是“抛出EX”。可能
dll
是32位的,并且必须被.NET Core
项目允许?是的,这是可能的。我复制了它。能否将LibName.dll重新编译为64位?dll是使用AnyCpu
选项编译的。我将它重新编译为64位,现在它工作正常。AnyCpu
的默认值是32位?我得告诉自己。。谢谢AnyCPU默认为64位,除非选中“首选32位”。