C# Dll导入路径。如何获取位于其他文件夹中的dll路径

C# Dll导入路径。如何获取位于其他文件夹中的dll路径,c#,winforms,C#,Winforms,我的项目1在这里 \Project1\Bin\Debug\application.exe 我的DLL在里面 \Project1\Debug\3rdparty.dll 如何获取代码中包含此dll的路径 [DllImport("????????/3rdparty.dll")] 我应该在问号处写什么 我的解决方案包括其他C++项目。因此,每当编译C++项目时,它会在Projist1调试中刷新DLL(一些我不熟悉C++) 我需要在DllImport[Path]中使用该DLL。 如果我试图添加引用,它会

我的项目1在这里 \Project1\Bin\Debug\application.exe 我的DLL在里面 \Project1\Debug\3rdparty.dll

如何获取代码中包含此dll的路径

[DllImport("????????/3rdparty.dll")]
我应该在问号处写什么 我的解决方案包括其他C++项目。因此,每当编译C++项目时,它会在Projist1调试中刷新DLL(一些我不熟悉C++) 我需要在DllImport[Path]中使用该DLL。 如果我试图添加引用,它会给我错误。 这可能是一个非常简单的问题,但由于某种原因,我无法解决它

Hans Pasant在评论部分回答:


将C++项目中的输出目录设置更改为$(SoordDidir)bin \$(配置名称),以便本地DLL与托管程序在同一文件夹中结束。只需在C代码中使用[DllImport(“3rdparty.dll”)。-汉斯·帕桑

  • 在“解决方案资源管理器”中,右键单击“引用”
  • 单击“添加引用”
  • 选择“浏览”选项卡并选择您的3rdparty.dll
  • 添加后,右键单击“References”下的3rdparty.dll,并将“Copy Local”更改为true
  • 然后只需像普通的那样指定DllImport即可[DllImport(“3rdparty.dll”)]

  • 只有当它是.NET程序集时,这才有效。因为看起来你正在使用C++ DLL,所以你需要看一下

    我已经尝试过,但是得到了错误信息:“不能添加DLL的引用”。只能添加.Net程序集作为参考。谢谢提供信息。我不只是.NET程序集可以被添加为参考。将C++项目中的输出目录设置更改为$$(SoordDidir)bin \$(配置名),以便原生的DLL在与托管程序相同的文件夹中结束。只要在你的C代码中使用[DllImport(“3rdparty.dll”)],它就行了。谢谢,汉斯。如果答案有效,请接受它作为解决方案。这对阅读此帖子的其他社区成员是有益的