cam*_*ous 6 azure-pipelines-release-pipeline
我的runsettings文件包含很少的连接字符串,我希望能够在VSTS中覆盖这些连接字符串,具体取决于环境.
我不想为每个环境使用特定的runsettings文件,但我想使用环境变量以便在配置我们的其他部署版本时保持一致.
但是,当我想向单元测试转发包含分号(;)的连接字符串(或任何参数)时,我将遇到问题.它被截断了.我测试过没有";"传输其他值 成功.
settings.runsettings
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<TestRunParameters>
<Parameter name="CRM_CONNECTIONSTRING" value="Url = https://MYCRM.crm4.dynamics.com; Username=login@email.com; Password=mypassword;" />
<TestRunParameters>
</RunSettings>
Run Code Online (Sandbox Code Playgroud)
但是,当执行(并显示单元测试中收到的实际值)时,该值在第一个";"之后被截断.
有没有办法保护价值?
直接与Microsoft联系后,最终以一种解决方法来回答自己。
问题也出现在官方vsts-task github上:https : //github.com/Microsoft/vsts-tasks/issues/2567
解决方法:在测试组装任务之前,运行一个Powershell脚本,以runsettings文件的路径作为参数,读取VSTS环境变量,并直接替换runsettings中的XML值。
我在这里提供了我的powershell脚本:https : //github.com/camous/vsts-powershell/blob/master/Set-RunSettings.ps1 (参数必须以“ __”为前缀)
我在这里写了更完整的“操作方法”:https://stuffandtacos.azurewebsites.net/2016/09/28/override-runsettings-parameters-in-visual-studio-team-service-when-value-contains-分号/
| 归档时间: |
|
| 查看次数: |
3170 次 |
| 最近记录: |