我有一个Asp.Net项目(Vb.Net),它引用了一个托管dll(用C#编写的库)。该库项目在lib文件夹(在构建过程中复制到bin / Release / lib文件夹)中有几个不受管的依赖项dll。该库不是主要解决方案的一部分。
我的库使用[DllImport]引用了非托管dll。但是要让非托管dll被找到,我调用SetDllDirectory():
public $servername;
我正在努力生成非托管dll及其依赖项的路径。我可以从我的主项目bin文件夹开始。但是接下来我该怎么办?例如。有没有一种方法可以将非托管的dll从库的bin / Release / lib文件夹复制到我的主项目的bin文件夹中?还是其他解决方案?
答案 0 :(得分:0)
有两种方法可以解决此问题:
将Dll作为文件添加到VS项目,然后将Build Action
设置为None
,将Copy to output directory
设置为Copy
。这应该确保已复制引用库的任何外部依赖项。
将诸如xcopy "$(ProjectDir)lib\*.*" "$(OutDir)\" /y /e
或xcopy "$(ProjectDir)lib\*.*" "$(TargetDir)" /y
之类的命令添加到Project属性中的Build Events部分。这应该将 \ lib 目录从项目根目录复制到输出中。