.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.