2011-11-28 71 views
8

我有一个C++ DLL项目和一个使用它的C#项目的解决方案。问题是,在C++项目的构建路径是在解决方案文件夹和C#是在项目的bin文件夹(每个嵌套与调试/发布),所以DllImport不容易找到他们。
有没有一个标准的方法来解决这个问题?C#/ C++在同一个解决方案 - 的DllImport找不到DLL

+0

您是否将该dll添加到了项目引用? – Tudor

+0

@Tudor是(非空白填充) – baruch

回答

6

你应该做的方式是设置构建路径这两个项目相同的“bin”目录... preferrably一个解决方案,而不是一个项目。然后,只需将所有项目构建到该文件夹​​。你可以从项目设置中改变它。

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

或者,您可以部署C++ DLL到系统路径(也可作为生成后步骤的一部分),但你有相同的问题,如上所述。

对于调试,我想呈现出的顺序推荐这些。