Pipelinetask zur Anpassung der Config pro Produktautomatisierung

Hi Patrick,

es reicht, wenn die neo42PackageConfig.json vor dem Setup.inf Wrapper angepasst wird.
Hierfür gibt es auch einen Communityeintrag:

Das Skript von meinem Kollegen muss also nur um die Abfrage der Variable erweitert werden:

[CmdletBinding()]
[OutputType([void])]
param (
    [Parameter(Mandatory = $true)]
    [string]$Path,

    [Parameter(Mandatory = $true)]
    [ValidateSet(0,1)]
    [int]$AskUninstallOld
)

if (-not (Test-Path $Path)) {
    throw "Datei nicht gefunden: $Path"
}

$jsonData = Get-Content -Raw -Path $Path | ConvertFrom-Json
$jsonData.UninstallOld = [bool]$AskUninstallOld
$jsonData | ConvertTo-Json -Depth 100 | Set-Content -Path $Path -Encoding UTF8

Das Skript abspeichern und z.B. im GeneralDirectory ablegen. Anschließend kann die Pipeline wie folgt angepasst werden:

  1. Eine neue Variable innerhalb der Pipeline anlegen (z.B. AskUninstallOld)

  1. Nach dem Entpacken das Skript ausführen lassen:

    Skript:
    <Global.GeneralDirectory>\AskUninstallOld.ps1
    Parameter: -Path „<Phase.PackagePath><Run.Version>\neo42PackageConfig.json“ -AskUninstallOld <Phase.AskUninstallOld>
  2. Package Config refresh Task nachfolgend einreihen:

Beim Ausführen der Pipeline kann die Variable mit 0 oder 1 gesteuert werden.

Das war jetzt einfach eine Quick&Dirty Lösung, um den Wert in der Json anzupassen - es gibt keine Prüfung, welcher Wert vorher gesetzt wurde! Daher das Ganze nur als Ansporn :wink: