taghelper tag page net asp .net visual-studio tfs msbuild .net-core

.net - tag - La versión del paquete siempre es 1.0.0 con el paquete dotnet



asp page tag helper (2)

Cuando usa el dotnet pack , la versión se extrae de la definición del proyecto (anteriormente project.json , ahora *.csproj ), no de AssemblyInfo.cs . Por lo tanto, su nuevo flujo de trabajo será muy similar al que tenía con project.json .

Desde los documentos de migración project.json a csproj , puede usar las propiedades VersionPrefix y VersionSuffix .

Antes de:

{ "version": "1.0.0-alpha-*" }

Ahora:

<PropertyGroup> <VersionPrefix>1.0.0</VersionPrefix> <VersionSuffix>alpha</VersionSuffix> </PropertyGroup>

También puede usar la propiedad de Version única, pero los documentos advierten que esto "puede anular la configuración de la versión durante el empaquetado".

<PropertyGroup> <Version>1.0.0-alpha</Version> </PropertyGroup>

TLDR: ¿Dónde está el dotnet pack extrayendo la información de la versión cuando crea el paquete nuget para un ensamblaje?

Tengo una biblioteca, que había pasado de un proyecto .NET 4.6.1 a un proyecto .NET Core con project.json . Para mi IC durante este período (usando TFS 2015 vnext), obtendría mi número de versión y reemplazaría el número de versión en el archivo project.json con la nueva versión. El comando dotnet pack recogería la versión muy bien y crearía un nuevo paquete con el número de versión actualizado.

La semana pasada, actualicé de TFS 2015 a TFS 2017. Resulta que project.json fue reemplazado por un archivo .csproj actualizado. He actualizado mi IC. Durante mi CI: actualizo mi archivo /Properties/AssemblyInfo.cs , reemplazando la etiqueta AssemblyVersion con la versión de la compilación actual. Luego construyo la solución, que funciona bien. Luego empaco la solución.

Sin embargo, a pesar de que AssemblyVersion y AssemblyFileVersion están configurados en AssemblyInfo.cs con el número de compilación correcto, el dotnet pack dotnet sigue produciendo archivos .nupkg que son *.1.0.0.nupkg .

¿Qué me estoy perdiendo?

Aquí está el comando de mi paquete:

dotnet pack $projectFile -o $currentDirectory


Mejor aún, especifique /p:Version=$(Build.BuildNumber) (TFS / VSTS) en el comando dotnet pack y lo compilará con la versión especificada en el paquete nuget. Ejemplo (no específico de TFS):

dotnet pack ./src/example/example.csproj -o c:/published/example -c Release /p:Version=1.2.3

Ejemplo (específico de TFS) <: usamos esto para nuestro empaque TFS 2017 usando un paso de script powershell.

dotnet pack $(Build.SourcesDirectory)/src/example/example.csproj -o $(Build.ArtifactStagingDirectory)/Pack -c Release /p:Version=$(Build.BuildNumber)

Nota: No actualiza las versiones de referencia del paquete.