c# / c++在相同的解决方案- DllImport找不到DLL
本文关键字:解决方案 DllImport 找不到 DLL c++ | 更新日期: 2023-09-27 18:16:04
我有一个c++ dll项目和一个使用它的c#项目的解决方案。问题是c++项目的构建路径在解决方案文件夹中,c#在项目的bin
文件夹中(每个都嵌套着debug/release),所以DllImport
找不到它们。
有一个标准的方法来解决这个问题吗?
您应该这样做的方法是将两个项目的构建路径设置为相同的'bin'目录…最好是一个解决方案,而不是一个项目。然后将所有项目构建到该文件夹中。您可以在项目设置中更改。
另一种技术是使用c++应用程序的构建后步骤,将DLL复制到c#项目的文件夹中。这样就不会改变任何路径。你只需要复制一个DLL。这里要小心,因为当你清理c++文件的项目时,你可能实际上在c#项目的bin目录中仍然有副本,让你挠头,为什么事情没有像预期的那样发生。
或者,您可以将c++ DLL部署到系统路径(也是构建后步骤的一部分),但您将遇到与上述相同的问题。
对于调试,我建议按照给出的顺序排列。