我正在引用一个托管的C ++ DLL,该DLL在我的C#代码中具有本机C ++作为引用。 我在VS 2019,Windows 10中运行它,当我运行该程序并复制了build文件夹中的所有DLL后,出现错误
FILEIOException:无法加载“ xxx.dll”导入的过程,
因此我无法调试任何东西。
如果我仅构建解决方案,并在运行Windows XP的计算机上运行时生成exe,它就会运行,而且我在WinXP计算机上安装了VS2019社区,它也可以正常运行。 .net4.5中的项目目标
dll以这种方式可能是什么原因? 我是否应该要求dll编写者仅在VS2010上工作才能在VS 2019中创建dll?
如果exe是在其他计算机上构建并复制到Win10,则它可以在Win10计算机上正常运行。
我怀疑有些Visual Studio或dll问题,但无法解决
代码如下,所有计算机中都有一个文件夹,其中所有dll位于特定位置:
static void Main(string[] args)
{
Initialize();
InvokeLibrary();
}
static void Initialize()
{
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(ResolveAssembly);
}
static Assembly ResolveAssembly(object sender, ResolveEventArgs args)
{
Console.WriteLine("Resolving Assembly....");
String strDllName = "full path";
Assembly MyAssembly1 = Assembly.LoadFile(strDllName);
return MyAssembly1;
}
static void InvokeLibrary()
{
/// call functions in assembly
}