我有一个包含多个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"我可以使用正则表达式打包所有子项目,如下所示。有没有办法在本地环境中使用这样的正则表达式。
3-是否可以创建包含子项目的nupkg。
4-是否可以创建包含多个dll的nupkg。我可以将项目的所有依赖项放入nupkg中。
答案 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>