# 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.zip a partir de de Net.Business.Services.csproj. # El zip NO incluye appsettings.json ni appsettings.Development.json (no pisar los del servidor). # -Destino : 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' $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" 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 fallo' } 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" }