AssemblyVersion y FileVersion a 2.1.15.0 (estaban en 2.1.12.0); publicar.ps1 multiplataforma, unica forma de generar el zip
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
3c104cca45
commit
44efabb44c
4 files changed
+31
-18
No files matched your search
+23
-11
@@ -1,23 +1,35 @@
|
||||
# Genera el publish para IIS y lo comprime como dist\ITCA_API_SAP_WMS_v<version>.zip
|
||||
# La versión sale de <AssemblyVersion> en Net.Business.Services.csproj.
|
||||
# UNICA forma de generar el zip del publish para IIS (Windows y macOS/Linux con PowerShell 7: pwsh ./publicar.ps1).
|
||||
# Genera dist/ITCA_API_SAP_WMS_v<MAJOR.MINOR.PATCH>.zip a partir de <AssemblyVersion> de Net.Business.Services.csproj.
|
||||
# El zip NO incluye appsettings.json ni appsettings.Development.json (no pisar los del servidor).
|
||||
# Requiere Windows (el driver Sap.Data.Hana se referencia desde C:\Program Files\sap\hdbclient).
|
||||
# -Destino <carpeta>: ademas copia el zip a esa carpeta (p. ej. el escritorio).
|
||||
# Driver Sap.Data.Hana: en Windows sale de C:\Program Files\sap\hdbclient; en macOS/Linux definir antes la variable de entorno
|
||||
# HanaDll con la ruta de Sap.Data.Hana.Core.v2.1.dll (MSBuild la toma como propiedad, ver README).
|
||||
param([string]$Destino)
|
||||
$ErrorActionPreference = 'Stop'
|
||||
Set-Location $PSScriptRoot
|
||||
|
||||
$csproj = 'Net.Business.Services\Net.Business.Services.csproj'
|
||||
$version = ([xml](Get-Content $csproj)).Project.PropertyGroup.AssemblyVersion | Where-Object { $_ } | Select-Object -First 1
|
||||
if (-not $version) { throw "No se encontró AssemblyVersion en $csproj" }
|
||||
$csproj = 'Net.Business.Services/Net.Business.Services.csproj'
|
||||
$props = ([xml](Get-Content $csproj)).Project.PropertyGroup
|
||||
$version = $props.AssemblyVersion | Where-Object { $_ } | Select-Object -First 1
|
||||
if (-not $version) { throw "No se encontro AssemblyVersion en $csproj" }
|
||||
# Version, AssemblyVersion y FileVersion deben ser iguales (Swagger muestra AssemblyVersion; se desalinearon en la 2.1.12-2.1.15)
|
||||
$otras = @($props.Version, $props.FileVersion) | Where-Object { $_ }
|
||||
if ($otras | Where-Object { $_ -ne $version }) { throw "Version/AssemblyVersion/FileVersion del csproj no coinciden (AssemblyVersion=$version)" }
|
||||
# Semver: el nombre lleva 3 numeros (2.1.15.0 -> 2.1.15); el cuarto del csproj siempre es 0
|
||||
$version = ($version -replace '\.0$', '')
|
||||
|
||||
$out = "dist\ITCA_API_SAP_WMS_v$version"
|
||||
$zip = "dist\ITCA_API_SAP_WMS_v$version.zip"
|
||||
$out = "dist/ITCA_API_SAP_WMS_v$version"
|
||||
$zip = "dist/ITCA_API_SAP_WMS_v$version.zip"
|
||||
Remove-Item $out, $zip -Recurse -Force -ErrorAction SilentlyContinue
|
||||
|
||||
dotnet publish $csproj -c Release -r win-x64 --self-contained false -o $out
|
||||
if ($LASTEXITCODE -ne 0) { throw 'dotnet publish falló' }
|
||||
if ($LASTEXITCODE -ne 0) { throw 'dotnet publish fallo' }
|
||||
|
||||
Remove-Item "$out\appsettings.json", "$out\appsettings.Development.json" -ErrorAction SilentlyContinue
|
||||
Compress-Archive -Path "$out\*" -DestinationPath $zip
|
||||
Remove-Item "$out/appsettings.json", "$out/appsettings.Development.json" -ErrorAction SilentlyContinue
|
||||
Compress-Archive -Path "$out/*" -DestinationPath $zip
|
||||
Write-Host "Generado: $zip"
|
||||
|
||||
if ($Destino) {
|
||||
Copy-Item $zip $Destino -Force
|
||||
Write-Host "Copiado a: $Destino"
|
||||
}
|
||||
Reference in new issue
Block a user