1

通常,当使用GitVersionnuget pack和 GitVersionTask(它会自动生成像 AssemblyInformationalVersion 这样的 .NET 程序集版本)时,我将通过对文件运行命令来生成 NuGet 包,并在其旁边放置.csproj一个.nuspec文件。这使我可以使用完整的 nuspec替换标记集,例如 $version$,然后从 GitVersion 生成的 AssemblyInformationalVersion 中获取其值,从而无需在任何地方对它们进行硬编码。

但是,在某些情况下,我想生成针对多个框架版本的 NuGet 包(然后进入 /lib 下的子文件夹,例如 net40、net45 等)。我通常会使用单独的项目(每个项目针对单个框架版本)来执行此操作,并将源文件作为链接添加到每个项目中。但这意味着nuget pack要处理多个 .csproj 文件,据我所知,NuGet 没有任何类型的“附加”模式可以添加到现有的 nupkg 存档中。因此,这意味着我需要直接nuget pack.nuspec执行操作,这剥夺了我使用替换令牌的能力。

因此,如果我希望能够使用 GitVersion 自动生成程序集版本,针对多个框架版本,利用 $version$ 之类的替换标记来避免对它们进行硬编码,我该怎么做呢?

4

0 回答 0