如何将依赖项从库项目复制到主项目?

时间:2018-07-17 14:23:55

标签: c# asp.net .net dllimport setdlldirectory

我有一个Asp.Net项目(Vb.Net),它引用了一个托管dll(用C#编写的库)。该库项目在lib文件夹(在构建过程中复制到bin / Release / lib文件夹)中有几个不受管的依赖项dll。该库不是主要解决方案的一部分。

我的库使用[DllImport]引用了非托管dll。但是要让非托管dll被找到,我调用SetDllDirectory():

public $servername;

我正在努力生成非托管dll及其依赖项的路径。我可以从我的主项目bin文件夹开始。但是接下来我该怎么办?例如。有没有一种方法可以将非托管的dll从库的bin / Release / lib文件夹复制到我的主项目的bin文件夹中?还是其他解决方案?

1 个答案:

答案 0 :(得分:0)

有两种方法可以解决此问题:

  1. 将Dll作为文件添加到VS项目,然后将Build Action设置为None,将Copy to output directory设置为Copy。这应该确保已复制引用库的任何外部依赖项。

  2. 将诸如xcopy "$(ProjectDir)lib\*.*" "$(OutDir)\" /y /excopy "$(ProjectDir)lib\*.*" "$(TargetDir)" /y之类的命令添加到Project属性中的Build Events部分。这应该将 \ lib 目录从项目根目录复制到输出中。