Nuget在解决方案中打包所有子项目

时间:2017-07-17 20:19:20

标签: tfs nuget nuget-package nuspec

我有一个包含多个Project的解决方案。项目结构如下。

/root
 A.sln
 A.nuspec
 /ProjectB
   projectB.csprj
   projectB.nuspec
 /ProjectC
   projectC.csprj
   projectC.nuspec

我有几个问题。

1-如果我在根文件夹中运行nuget pack A.nuspec会发生什么。有没有办法在解决方案中打包所有项目。

2-当我发送代码TFS时,使用" NuGet Packager"我可以使用正则表达式打包所有子项目,如下所示。有没有办法在本地环境中使用这样的正则表达式。

enter image description here

3-是否可以创建包含子项目的nupkg。

4-是否可以创建包含多个dll的nupkg。我可以将项目的所有依赖项放入nupkg中。

1 个答案:

答案 0 :(得分:0)

  

1-如果我在根文件夹中运行nuget pack A.nuspec会发生什么。有没有办法在解决方案中打包所有项目。

我不相信有一种方法可以使用.nupsec将所有项目打包到解决方案中。这是因为创建包的过程总是从创建描述包内容的.nuspec包清单文件开始。当安装到项目而不是解决方案时,此清单会驱动程序包的创建及其使用。并且ID和版本在.nupsec中必须是唯一的,因此我们无法使用唯一ID和版本来指定多个项目。

  

2-当我发送代码TFS时,使用" NuGet Packager"我可以使用正则表达式打包所有子项目,如下所示。有没有办法在当地环境中使用这样的正则表达式。

答案是否定的。我在本地计算机上测试了它,通配符在命令行中被视为非法字符

  

3-是否可以创建包含子项目的nupkg。

如果我理解正确,你的意思是子项目是参考项目?如果是,答案是肯定的。您可以使用选项" IncludeReferencedProjects"包含引用的项目作为依赖项或作为包的一部分。有关详细信息,请参阅this document

  

4-是否可以创建包含多个dll的nupkg。我可以将项目的所有依赖项放入nupkg。

当然可以。您可以参考我已经回答的another thread了解更多详情。如果要将项目的所有依赖项放入nupkg,可以使用<dependencies>在.nuspec中包含所有依赖项。

    <dependencies>
       <dependency id="Newtonsoft.Json" version="9.0" />
    </dependencies>