Nuget在解决方案中打包所有子项目
我有一个包含多个项目的解决方案。项目结构如下。Nuget在解决方案中打包所有子项目
/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-是否有可能创建一个nupkg包含多个DLL。我可以将项目的所有依赖项都放入nupkg中吗?
1-如果我在根文件夹中运行nuget pack A.nuspec会发生什么情况。有没有办法在解决方案中打包所有项目?
我不相信有一种方法通过使用.nupsec打包解决方案中的所有项目。这是因为创建包的过程始终始于创建描述包内容的.nuspec包清单文件。这个清单驱动包的创建以及在将安装到项目中时的使用情况,而不是解决方案。并且ID和版本在.nupsec中必须是唯一的,所以我们不能使用唯一的ID和版本来指定多个项目。
2-当我发送代码TFS和“NuGet Packager”时,我可以使用正则表达式打包所有子项目,如下所示。有没有办法在本地环境中使用这样的正则表达式。
答案是否定的。我已经在本地机器上测试了它,通配符在命令行中被视为非法字符。
3-是否可以创建一个nupkg包含两个子项目。
如果我正确理解你,你的意思是子项目是参考项目?如果是的话,答案是肯定的。您可以使用选项“IncludeReferencedProjects
”将引用的项目包含为依赖项或包的一部分。详情请参阅this document。
4-是否有可能创建一个nupkg包含多个dll。我可以将项目的所有依赖项都放入nupkg中吗?
当然可以。你可以参考我已经回答的another thread了解更多细节。如果要将项目的所有依赖项都放入nupkg中,则可以使用<dependencies>
将所有依赖项包含在.nuspec中。
<dependencies>
<dependency id="Newtonsoft.Json" version="9.0" />
</dependencies>