【问题标题】:Injecting pre-release versions into CSPROJ NuPkg generation将预发布版本注入 CSPROJ NuPkg 生成
【发布时间】:2018-06-26 13:29:51
【问题描述】:

我正在使用 Visual Studio 2017 中引入的新 CSPROJ 架构。 此外,我使用它为我的程序集创建一个 NuPkg。

<PropertyGroup>
  <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
  <PackageId>MyComponent</PackageId>
  <Version>2.1.0</Version>
 .
 .
 .
</PropertyGroup>

我正在使用 VSTS 来构建我的解决方案,并且我想通过向标签添加预发布名称来使用该构建来控制包质量。像这样的:

  <Version>2.1.0$(VERSIONSUFFIX)</Version>

生成包名,例如:

  • MyComponent.2.1.0-alpha-12345.nupkg
  • MyComponent.2.1.0-beta-67890.nupkg
  • MyComponent.2.1.0.nupkg

这没问题,但我发现了一个令人讨厌的副作用 - 如果我在 Visual Studio 中以交互方式编辑版本号,它会删除 $(VERSIONSUFFIX) 占位符。我可以更新版本号的唯一方法是直接编辑 CSPROJ。

有没有更好的方法让构建控制 NuPkg 生成?

谢谢

-约翰

【问题讨论】:

    标签: msbuild visual-studio-2017 nuget-package azure-pipelines-build-task azure-artifacts


    【解决方案1】:

    编辑器将始终更改 Version 并删除所有自定义项。

    新 SDK 的建议方法是在构建中设置 VersionPrefix,并且 VersionSuffix - 如果设置 - 将附加到它。

    所以你有

    <VersionPrefix>1.2.3</VersionPrefix>
    

    并且可以使用-p:VersionSuffix=beta-123 生成1.2.3-beta-123.nupkg 文件。 但是无论如何都无法在 VS 属性中进行编辑。

    【讨论】:

    • 不知道 ,感谢您提供的信息!也就是说,看起来这仍然不能解决我对编辑器的问题。如果我在 CSPROJ 中设置 并删除 ,我会在包属性编辑器中看到“版本”,但如果我在那里更新它,它会在 CSPROJ 中写入一个新的 标签(不更新 ) 然后构建现在似乎忽略了 标记。
    【解决方案2】:

    您可以根据需要使用构建变量在 NuGet 打包任务中指定包版本和前缀版本。

    如果您想使用汇编版本作为包版本并根据需要更改前缀版本,您可以使用以下步骤:

    1。获取汇编版本

    可以添加任务Assembly Info Reader,然后可以通过变量$(ASSEMBLYINFO.ASSEMBLYVERSION)获取汇编版本。

    2。根据需要定义包版本和前缀版本

    您可以在构建定义中定义一个变量来仅指定前缀版本。比如变量ver加上前缀部分beta-1.1

    添加 PowerShell 任务以将 $(ASSEMBLYINFO.ASSEMBLYVERSION) 和前缀版本组合在一起以打包 nuget 包。 PowerShell 脚本可以是:

    Write-Host "##vso[task.setvariable variable=ver]$(ASSEMBLYINFO.ASSEMBLYVERSION)-$(ver)"
    

    所以变量$(ver) 包含带有前缀版本的版本。

    3。为要打包的包指定带有前缀的定义版本

    在 NuGet 包任务中,为自动包版本控制选项选择使用环境变量,并将ver 指定为环境变量。

    那么打包后的包就会变成MyComponent.2.1.0-beta-1.1.nupkg等格式

    【讨论】:

      猜你喜欢
      • 2019-06-04
      • 2021-05-20
      • 2018-06-29
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      • 1970-01-01
      • 2017-06-13
      相关资源
      最近更新 更多