【问题标题】:C# DLL loaded for exe-application is not found when launching similar DLL by rundll32.exe通过 rundll32.exe 启动类似的 DLL 时,找不到为 exe 应用程序加载的 C# DLL
【发布时间】:2013-08-13 16:07:31
【问题描述】:

我已经构建了一个 C++/CLI DLL,它是一些 .NET C# DLL 的包装器。作为一个示例应用程序,我已经为基于 WindowsForms GUI 的 exe 应用程序构建了一个简单的项目。它适用于我的 C++/CLI 库和提到的 .NET C# DLL。但是,如果我构建另一个 C++ DLL 来替代这个示例 exe 应用程序,它不会成功加载 .NET C# DLL,尽管它位于当前的 Windows 路径中。尝试从此 C# 代码调用某些函数时发生以下异常:

MyApp.dll 中出现“System.IO.FileNotFoundException”类型的未处理异常附加信息: 无法加载文件或程序集“xxxx,版本=yyyy,文化=中性,PublicKeyToken=null” 或其依赖项之一。系统找不到指定的文件

什么是可能的问题?一般来说,C# DLL 应该如何链接到非托管可执行文件?是清单的问题吗? 提前致谢。

【问题讨论】:

    标签: c# .net dll c++-cli


    【解决方案1】:

    加载 .NET 程序集时不使用 windows 路径。程序集必须与可执行文件位于同一文件夹中,或者位于 GAC 中。 (这有点过于简单了,详情请看下面的链接)

    【讨论】:

      猜你喜欢
      • 2011-06-09
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      • 2012-08-23
      • 2012-02-24
      • 1970-01-01
      • 2016-12-13
      • 2012-08-03
      相关资源
      最近更新 更多