Автоинкрементная версия пакета NuGet - PullRequest
1 голос
/ 04 октября 2019

Есть ли способ автоматического увеличения версии пакета NuGet при использовании «Создать NuGetPackage при сборке» в C # /. NET Standard 2.1?

1 Ответ

1 голос
/ 04 октября 2019

Если вы собираете и публикуете проект с помощью сервера сборки и управляете версией с помощью Git, вы можете попробовать задачу Msbuild GitVersion . Подобную проблему смотрите здесь .

Но если вы просто хотите чистую сборку и публикацию в локальной VS без использования Git, то я боюсь, что пока нет опции VS или MsbuildЗадача поддерживает это поведение. Вы можете DC предложить функцию, потому что это значимая идея, но в настоящее время она недоступна.

Кроме того, подсказки Martin и Alexandre , вы можете добавить этот скрипт в xx.csproj:

  <PropertyGroup>
    <GenerateNuspecDependsOn>$(GenerateNuspecDependsOn);SetPackageVersion</GenerateNuspecDependsOn>
  </PropertyGroup>

  <Target Name="SetPackageVersion" DependsOnTargets="Build">
    <PropertyGroup>
      <!--<PackageVersion>$([System.DateTime]::Now.ToString(&quot;yyyy.MM.dd.HHmmss&quot;))</PackageVersion>-->
      <!--You can customize the format and the rule about how version increases here.-->
      <PackageVersion>$([System.DateTime]::Now.ToString(&quot;1.MM.dd&quot;))</PackageVersion>
    </PropertyGroup>
  </Target>

Тогда, когда вы публикуете пакет сегодня, его версия - 1.10.4. Завтра для 1.10.5 это работает, если вам не нужно публиковать разные версии одного пакета в день. Также вы можете настроить скрипт для определения своего правила увеличения версии. Может ли это помочь:)


Если вы нацелены на несколько каркасов, см. Сборка проекта с несколькими targetframeworks в tfs как пакет nuget

Это работает при установке версии сборки на подстановочный.

<Deterministic>false</Deterministic>
<AssemblyVersion>3.0.*</AssemblyVersion>
...