通常,当使用GitVersion和GitVersionTask(自动生成.NET Assembly程序版本,如AssemblyInformationalVersion)时,我将通过对nuget pack
文件运行.csproj
命令生成NuGet包,一个.nuspec
文件旁边。这允许我使用全套的nuspec replacement tokens,就像$ version $一样,然后从GitVersion生成的AssemblyInformationalVersion获取它的值,从而无需在任何地方硬编码。
但是,在某些情况下,我想生成针对多个框架版本的NuGet包(然后进入/ lib下的子文件夹,例如net40,net45等)。我通常会使用单独的项目(每个项目都针对单个框架版本)执行此操作,并将源文件添加为每个项目的链接。但这意味着nuget pack
会有多个.csproj文件要处理,据我所知,NuGet没有任何"追加"将添加到现有nupkg存档的模式。那就意味着我需要对.nuspec directly进行nuget pack
,这会剥夺我使用替换令牌的能力。
因此,如果我希望能够使用GitVersion自动生成程序集版本,和定位多个框架版本,和可以利用替换令牌,例如$版本$以避免硬编码,我该怎么办?