【问题标题】:Nuget packages with dlls in Content not being copied during project build在项目构建期间未复制内容中包含 dll 的 Nuget 包
【发布时间】:2013-10-30 14:21:38
【问题描述】:

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

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

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

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

但是在克隆新存储库时,构建项目不会将内容复制到项目中,并且 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 为我选择。

【问题讨论】:

    标签: git nuget


    【解决方案1】:

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

    1. 从源下载包文件;
    2. 将包安装到所谓的packages文件夹中,默认为$(SolutionDir)\packages;
    3. 将包安装到项目中,包括添加对 DLL 的引用、将内容文件复制到项目目录等。

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

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

    【讨论】:

      猜你喜欢
      • 2013-02-03
      • 2019-01-28
      • 2020-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多