平台调用语句中DLL的相对路径

时间:2009-01-23 19:15:58

标签: c# visual-studio-2008 pinvoke

我正在使用VS 2008来开发一个使用带有P / Invoke的.dll的应用程序。当我使用绝对路径时,我可以成功使用dll。例如,这个DOES工作:

[的DllImport( “C:\\ MYDLL.DLL”)]         内部静态extern bool isReady();

这不起作用:

[的DllImport( “MYDLL.DLL”)]         内部静态extern bool isReady();

我尝试添加一个参考文件夹并将dll添加到项目文件夹但是都不起作用。我需要在其他计算机上部署此应用程序,并需要确保包含此.dll。谢谢你的帮助!


我忘记提及当我尝试这样做时,我收到此错误:

Microsoft Visual Studio 无法添加对“C:\ Users \ dlugokja \ Documents \ Visual Studio 2008 \ Projects \ DinamapN.sln(1)\ DinamapN \ DinamapN \ DinaWin.dll”的引用。请确保该文件是可访问的,并且它是有效的程序集或COM组件。 行

2 个答案:

答案 0 :(得分:4)

我们在工作中使用的解决方案如下:

  1. 将DLL添加到项目中
  2. 将DLL的属性编辑为“内容”和“始终复制”
  3. 将P / Invoke语句中的DLL引用为@“mydll.dll”

答案 1 :(得分:-2)

为什么不直接点击项目文件,“添加引用”并浏览到dll?