在项目构建期间未在内容中复制具有dll的Nuget包

时间:2013-06-12 11:00:53

标签: git nuget

我有一个使用NuGet包LZ4.NET的解决方案。

该软件包将dll存储在content文件夹中,该文件夹将被复制到目标项目根目录。

已经检查了源代码控制(Git),但项目中的dll被排除在外。

目前已签入packages文件夹,其中包含lib和content目录以及所有必需的dll文件。

但是在克隆新的存储库时,构建项目不会将内容复制到项目中,并且visual studio会出现dll丢失的错误(因为它们已包含在项目中但被排除在源代码管理之外)。 / p>

每次构建内容时,如何让nuget复制内容? 或者我应该将dll签入项目吗?

更新

我已启用NuGet包恢复。但似乎by design Nuget does not support restoring of content files。如果是这种情况,似乎我必须检查项目中的dll。

但是dll是由.Net Framework版本组织的,即net35,net40,net45。如果我检查dll,那么它将被“锁定”到我签入的.Net框架版本,而不是依靠Nuget为我选择。

1 个答案:

答案 0 :(得分:1)

当一个软件包安装到项目中时,NuGet实际上执行了这些操作,

  1. 从源代码下载包文件;
  2. 将软件包安装到所谓的packages文件夹中,默认情况下为$(SolutionDir)\ p​​ackages;
  3. 将软件包安装到项目中,该项目包括添加对DLL的引用,将内容文件复制到项目目录等。
  4. 恢复包时,只执行前两个步骤。这就是为什么项目目录中的DLL不会被“恢复”的原因。

    现在唯一的解决方案是检入项目目录中的DLL。