首页 文章

我是否需要将标记为依赖项的DLL添加到nuget lib文件夹中

提问于
浏览
1

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

我有第二个包引用第一个via nuget所以构建它的包我遵循相同的过程但是在一个依赖元素中添加到nuspec文件中 . 当我从发布到lib复制时,它也需要依赖的dll .

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

2 回答

  • 0

    我不确定我的方案是否正确,但总的来说我可以说:根据您创建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包中 .

  • 1

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

相关问题