Как заменить значения конфигурации json перед выполнением задачи сборки Xamarin iOS и Android в конвейере - PullRequest
0 голосов
/ 09 апреля 2020

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

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

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

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

1 Ответ

0 голосов
/ 10 апреля 2020

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

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

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

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

  • Добавьте встроенную задачу 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")
    }  
    
  • Используйте API REST (Definitions - Update), чтобы обновить значение переменной определения сборки значением URL.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...