0

我正在开发适用于 iOS 和 Android 的 Xamarin.Forms 应用程序,在共享项目中,我有一个 appsettings.json 文件,其中放置了一些基本设置键/值。

我想根据构建管道内 .YML 文件中的配置变量替换这些键的值,例如,调试管道的键 { "url": "" } 将是 { "url": " http: //google.com " } 并且对于 Release Pipeline 将是 { "url": " http://amazon.com " }。

我以前在 .NET Core 项目中处理过这种情况,但我不知道如何使用 Xamarin 来完成,我知道 Azure Pipeline 预定义任务中有一个文件转换任务,但它需要一个 .zip 包或文件夹找到 .json 并对其进行转换的路径,但对于移动应用程序,我认为没有像预构建文件夹这样糟糕的东西。

我请求你的帮助。

4

1 回答 1

0

如何在 Xamarin iOS 和 Android 在管道中构建任务之前替换 json 配置值

如果您对不同的配置变量有不同的管道。您可以使用任务Replace Tokensurl直接更新文件中键的值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")
    }  
    
  • 使用 REST API( Definitions - Update) 将构建定义变量的值更新为URL.

  • 使用任务 Replace Tokens 更新文件url中的键值appsettings.json

希望这可以帮助。

于 2020-04-10T06:15:13.880 回答