2013-06-12 101 views
2

我有一个使用NuGet包LZ4.NET的解决方案。Nuget包含dll内容不会在项目构建过程中被复制

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

这已签入源控制(GIT),但是在项目中的DLL被排除在外。

目前包文件夹签入,同时具有所有必要的dll文件lib和内容目录。

但是,当克隆新的存储库时,构建项目不会将内容复制到项目中,并且Visual Studio会提供dll丢失的错误(因为它们已包含在项目中,但从源代码管理中排除)。

我怎样才能让nuget在每次构建时复制内容? 或者我应该只在项目中检查dll?

更新

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

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

回答

1

当一个包被安装到一个项目,在的NuGet实际上执行这些操作,

  1. 从源代码下载包文件;
  2. 将软件包安装到所谓的packages文件夹中,默认为$(SolutionDir)\ p​​ackages;
  3. 安装软件包到项目,它由加引用的DLL,复制内容文件到项目目录等

当一个包被恢复的,只有前两个步骤被执行。这就是为什么你的项目目录中的DLL不会被“恢复”。

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

相关问题