【问题标题】:Do I need to add DLL's that are marked as dependencies to the nuget lib folder我是否需要将标记为依赖项的 DLL 添加到 nuget lib 文件夹
【发布时间】:2013-04-30 12:37:41
【问题描述】:

我有一个包和 nuspec 文件,我通过将相关程序集的 dll 复制到与我的 nuspec 文件位于同一文件夹中的 lib 文件夹中来构建该文件。这一切都很好,花花公子,这里没有问题。

我有第二个包,它通过 nuget 引用第一个包,因此为了构建它的包,我遵循相同的过程,但在 nuspec 文件中添加了一个依赖项元素。当我从 release 复制到 lib 时,它也需要依赖的 dll。

由于这被标记为依赖项,我可以从 lib 文件夹中删除它(我希望它通过 nuget 下载,不包含在当前包中)。

【问题讨论】:

    标签: nuget nuget-package


    【解决方案1】:

    我不确定我是否完全了解您的情况,但总的来说,我可以说:根据您创建 NuGet 包的方式,您甚至可能不必指定依赖项。给定具有以下结构的 Visual Studio 解决方案:

    * Solution1
      - Project1
        * projectfile1.csproj
          - using external libraries through NuGet
          - project reference to Project2
        * nuspecfile1.nuspec
      - Project2
        * projectfile2.csproj
        * nuspecfile2.nuspec
    

    如果您运行 nuget pack projectfile1.csproj,则 Project1 中包含的任何 NuGet 包都将自动作为依赖项包含在您的 NuGet 包中,即使您尚未在 nuspec 文件中指定依赖项。然后,这些依赖项还将包括创建包时外部库的版本。

    截至NuGet 2.5,还有一个新功能可以自动解决同一解决方案中项目之间的依赖关系。使用 v2.5,您可以运行以下命令:

    nuget pack projectfile1.csproj -IncludeReferencedProjects
    

    这也将导致对 Project2 的 NuGet 依赖。如果 Project2 没有作为 NuGet 包公开(即它没有 nuspec 文件),Project2 的 dll 将作为文件包含在 Project1 的 NuGet 包中。

    【讨论】:

      【解决方案2】:

      经过一些测试后发现添加依赖项并不要求 dll 在 lib 中。该依赖项假定它将由 Nuget 解决。这可以通过通过 nuget GUI 创建一个新的包文件并添加一些依赖项来确认。请注意它们在保存后如何不显示在 lib 文件夹中。

      【讨论】:

        猜你喜欢
        • 2013-09-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多