首页 > 解决方案 > DLL未加载,Win10上的方法未解决错误

问题描述

我正在引用一个托管 C++ DLL,它在我的 c# 代码中具有本机 C++ 作为引用。我在 VS 2019、Windows 10 中运行它,当我运行程序并在构建文件夹中复制所有 DLL 后,出现错误

FILEIOException:无法加载由“xxx.dll”导入的过程,

因此我无法调试任何东西。

如果我只是构建我的解决方案,如果我在装有 Window XP 的机器上运行生成 exe,它就会运行,我还在 WinXP 机器上安装了 VS2019 社区,它也可以正常运行。.net4.5 中的项目目标

dll以这种方式表现的可能原因是什么?我应该要求 dll writer 在 VS 2019 中创建 dll,只有他在 VS2010 上工作吗?

如果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
}

标签: c#c++visual-studiodll

解决方案


推荐阅读