c#项目找不到c ++ .dll?

时间:2010-05-16 22:49:40

标签: c# .net c++

我有一个工作的c ++ dll可以在我通过互操作服务调用的一个c#项目中工作。我创建了另一个c#项目,我试图调用相同的.dll但是仍然收到一条通用错误消息,指出无法找到.dll,这两个项目都是.net 2.0。我应该将.dll文件放在什么文件夹中,以及在项目中指定的位置,以便项目可以找到它?

把它想象成一个提醒我...

在上一个项目中,我没有对它的引用,我只是在/ bin文件夹中,并为此项目做同样的事情不起作用。

谢谢R。

5 个答案:

答案 0 :(得分:3)

确保所讨论的DLL所依赖的所有DLL与使用DLL的exe所在的目录相同。

答案 1 :(得分:0)

将C ++(native)dll放在C#项目的输出目录中,bin \ Debug或

答案 2 :(得分:0)

只要您将工作目录放在DLL的位置,就不会有问题。

转到Debug选项卡上的项目属性,并将工作目录设置为包含DLL的目录。

答案 3 :(得分:0)

我通常将DLL作为文件添加到项目中,然后将其复制到较新版本。

答案 4 :(得分:0)

尝试通过相对路径访问未管理的dll的C#dll受与加载dll的任何进程相同的规则控制 - 即文件必须与可执行文件位于同一目录中,或者在进程中定义的路径之一中'PATH变量。

为了让您的Visual Ssolution自动为您执行此操作,您可以执行以下操作:

  1. 将非托管项目添加为C#项目依赖项。这会将DLL复制到C#可执行文件的路径中。

  2. 将C ++项目的输出路径更改为c#可执行文件的输出路径。

  3. 构建C ++项目并将dll添加为C#项目的链接。在其属性中设置以复制到输出目录。