c# / c++在相同的解决方案- DllImport找不到DLL

本文关键字:解决方案 DllImport 找不到 DLL c++ | 更新日期: 2023-09-27 18:16:04

我有一个c++ dll项目和一个使用它的c#项目的解决方案。问题是c++项目的构建路径在解决方案文件夹中,c#在项目的bin文件夹中(每个都嵌套着debug/release),所以DllImport找不到它们。
有一个标准的方法来解决这个问题吗?

c# / c++在相同的解决方案- DllImport找不到DLL

您应该这样做的方法是将两个项目的构建路径设置为相同的'bin'目录…最好是一个解决方案,而不是一个项目。然后将所有项目构建到该文件夹中。您可以在项目设置中更改。

另一种技术是使用c++应用程序的构建后步骤,将DLL复制到c#项目的文件夹中。这样就不会改变任何路径。你只需要复制一个DLL。这里要小心,因为当你清理c++文件的项目时,你可能实际上在c#项目的bin目录中仍然有副本,让你挠头,为什么事情没有像预期的那样发生。

或者,您可以将c++ DLL部署到系统路径(也是构建后步骤的一部分),但您将遇到与上述相同的问题。

对于调试,我建议按照给出的顺序排列。