Как заменить значения конфигурации json перед задачей сборки Xamarin iOS и Android в конвейере

Я работаю над приложением Xamarin.Forms как для iOS, так и для Android, в общем проекте у меня есть файл appsettings.json, в который я помещаю некоторые ключи / значения базовых настроек.

Значения этих ключей, которые я хочу заменить, в зависимости от переменных конфигурации, которые у меня есть в файле.YML внутри моих конвейеров сборки, поэтому, например, ключ { "url": "" } для конвейера отладки будет {"url": " http://google.com/"}, а для Release Pipeline будет {" url":" http://amazon.com/" }.

Раньше я обрабатывал этот сценарий в проектах.NET Core, но я не знаю, как это сделать с помощью Xamarin, я знаю, что в предварительно определенных задачах конвейера Azure есть задача преобразования файлов, но для этого требуется пакет или папка.zip. путь, чтобы найти.json и преобразовать его, но для мобильных приложений я думаю, что нет ничего плохого, как папка предварительной сборки.

Прошу вашей помощи.

1 ответ

Как заменить значения конфигурации json перед задачей сборки Xamarin iOS и Android в конвейере

Если у вас разные конвейеры для разных переменных конфигурации. Вы можете просто использовать задачу Заменить токены, чтобы обновить значение ключаurl в appsettings.json файл напрямую.

Вы можете проверить мою предыдущую ветку для подробностей.

Кроме того, если вы используете один конвейер для разных переменных конфигурации, нам необходимо использовать команду ведения журнала и REST API ( Definitions - Update) для обновления значения переменной определения сборки из задачи сборки.

  • Добавьте встроенную задачу PowerShell со следующей командой ведения журнала, чтобы установить переменную URL:

    $config= $Env:configuration
    Write-Host "Current config is $config"
    if ($config -eq "Debug")
    {
      Write-Host ("##vso[task.setvariable variable=URL]http://google.com")
     }
    
    elseif ($config -eq "release")
    {
      Write-Host ("##vso[task.setvariable variable=URL]http://amazon.com")
    }  
    
  • Используйте REST API (Definitions - Update), чтобы обновить значение переменной определения сборки значением URL.

  • Используйте задачу Заменить токены, чтобы обновить значение ключа url в appsettings.json файл

Надеюсь это поможет.

Другие вопросы по тегам