我们正在将计划的 Web 作业部署到 Azure。 Web 作业是使用 Visual Studio 2015 开发的。“settings.job”文件包含计划定义。但是,我们希望根据我们是部署到“开发”环境还是“暂存/生产”环境来使用不同的计划。实现这一目标的最佳方法是什么?
这是对上述问题的更新。当我们从 GitHub 进行部署时,Sentinel 给出的以下答案有效。但是,现在我们使用 Visual Studio Team Services 进行构建并部署到 Azure 中,该方法不再有效。这几乎就像 VSTS 在预构建事件之前将原始 settings.job 文件的副本复制到其他位置,将每个环境的版本复制到原始 settings.job 上,并使用这些副本来创建部署包。任何见解或建议将不胜感激。
最佳答案
我会编写一个 PowerShell 脚本来实现此目的。 在构建定义中创建一个变量来存储 settings.job 文件位置,并创建另一个变量来存储计划。然后使用 VSTS 中的 PowerShell 脚本实用程序更新设置文件。
下面的代码将更新文件。
param(
[Parameter(Mandatory=$true)][string]$configFile,
[Parameter(Mandatory=$true)][string]$schedule
)
$j = Get-Content $configFile -Raw | ConvertFrom-Json
$j.schedule = $schedule
$j | ConvertTo-Json | set-content $configFile
关于azure - 如何通过 VSTS 在每个环境中使用不同的 'settings.job',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43235113/