【发布时间】:2018-01-15 15:43:38
【问题描述】:
大家好,剧情如下:
我有一个包含一些设备函数的小型 C# 库项目:DeviceLib.dll
为了在 C++ 中使用这个函数,我使用 CLI 创建了一个包装器项目:DeviceLibWrapper.dll
最后,我使用了一个小型 C++ 控制台应用程序来测试包装的东西。 一切都按我的预期工作。
为了将 dll 与控制台应用程序分开,我创建了一个文件夹 (c:\test_lib),其中包含所需的所有 dll,并将路径添加到系统“Path”变量中。
我更改了包装器项目的配置以使用路径变量,如果将 DeviceLibWrapper.dll 移动到库文件夹中,它就像一个魅力。
如果我尝试将 C# 库 (DeviceLib.dll) 移动到该文件夹,我只会得到 System.IO.FileNotFoundException(未找到 DeviceLib.dll 程序集)。
首先我在包装项目中使用了对 C# 库的项目引用。
然后我尝试了#using "DeviceLib.dll" 指令并使用 $(Path) 更改了 "Resolve #using References" 选项。 至少我添加了 C# dll 作为完整路径的引用。
但结果还是一样。 如果我将 C# lib 复制到控制台输出文件夹中,则应用程序可以正常工作,否则会引发未找到程序集错误。 所以现在我有点困惑。
解决此类依赖关系的最佳/推荐方法是什么?感谢您的帮助!
【问题讨论】:
标签: c# c++ visual-studio dll c++-cli