Cześć,
Tworzę projekt który składa się z aplikacji .net core 3.0 oraz instalatora MSI bazującego na WIX. Napotkałem problem przy tworzeniu CI/CD procesu. AzureDevops, Jeden build , jeden release odpowiedzialny za trzy środowiska.
Problem pojawia się gdy chce zmienić wartości w pliku appsettings.json podczas releasu pliku MSI na docelowe środowisko(DEV,QA,Prod). Czy macie sugestie w jaki sposób to wykonać ?
Kilka własnych pomysłów:
- Build tworzy plik MSI. Podczas releasu rozpakowywać plik msi skryptami i podmieniać zawartość pliku. (Nie wiem czy są darmowe narzędzia do tego)
- Podczas buildu tworzyć jeden MSI z wszystkimi możliwymi plikami appsettings. Dodać custom script do MSI który w zależnosci od parametru używa poprawnego appsettings.
- Zmienić koncepcje . Utworzyć osobne buildy dla każdego środowiska (Tutaj podmiana zmiennych) oraz osobne releasy dla każego środowiska. Niestety tracę możliwość kontroli procesu, MSi nie będzie musiał przejść przez wszystkie etapy procesu.