Deployment 如何通过VSTS发布定义覆盖windows services.exe.config文件中的密钥
我正在执行VSTS发布任务以部署Windows服务项目。不幸的是,我们没有为创建放置文件夹创建任何构建定义。 但是,我的客户端将为此项目提供drop文件夹,我需要的是在版本级别“我想覆盖现有.exe.config文件的密钥” 为了创建Windows服务部署任务,我遵循以下步骤 例如,我的drop文件夹如下所示: 非常感谢您的参考,它对于使用powershell命令更改配置文件中的值非常有用。我对参考链接中的以下内容表示怀疑: 例如,如果有这样的代码:Deployment 如何通过VSTS发布定义覆盖windows services.exe.config文件中的密钥,deployment,windows-services,azure-pipelines-release-pipeline,Deployment,Windows Services,Azure Pipelines Release Pipeline,我正在执行VSTS发布任务以部署Windows服务项目。不幸的是,我们没有为创建放置文件夹创建任何构建定义。 但是,我的客户端将为此项目提供drop文件夹,我需要的是在版本级别“我想覆盖现有.exe.config文件的密钥” 为了创建Windows服务部署任务,我遵循以下步骤 例如,我的drop文件夹如下所示: 非常感谢您的参考,它对于使用powershell命令更改配置文件中的值非常有用。我对参考链接中的以下内容表示怀疑: 例如,如果有这样的代码: <erecruit.tasks>
<erecruit.tasks>
<tasks>
<task name="AA" taskName="AA">
<parameters>
<param key="connectionString">Server="XXXX"</param>
</parameters>
</task>
Server=“XXXX”
如何更改上述连接字符串值?您可以在扩展中使用标记器任务
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="TestKey1" value="__Token1__" />
<add key="TestKey2" value="__Token2__" />
<add key="TestKey3" value="__Token3__" />
<add key="TestKey4" value="__Token4__" />
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
然后TestKey1
(key)的值将与来自xpath的value\u相关,TestKey2
和TestKey3
的值将与来自\u custom2的value\u和来自\u custom3的value\u相关
另一方面,如果不指定配置Json文件名,则可以直接使用发布变量
例如,在您的配置文件中有\uuuuuuu令牌变量1\uuuuu
,在发布定义中有TokenVariable1
发布/环境变量,那么\uuuuuuu令牌变量1\uuuuuuu
将通过令牌化器任务替换
相关文章:
更新:
您也可以直接通过PowerShell完成
现在我没有任何源代码可以更改为标记化概念,但我只有包含dll等的drop文件夹。您的意思是drop文件夹中没有配置文件吗?它在哪里?我在drop文件夹中有配置文件,但我不想做任何更改,我需要在vsts release Only中进行更改,使用标记器任务,您不需要更改配置文件,只需要有一个配置Json文件。另一方面,你也可以直接通过PowerShell完成(查看我答案的更新)@sateesh现在结果如何?你能解决这个问题吗?
{
"Default Environment":{
"CustomVariables":{
"Token2":"value_from_custom2",
"Token3":"value_from_custom3"
},
"ConfigChanges":[
{
"KeyName":"/configuration/appSettings/add[@key='TestKey1']",
"Attribute":"value",
"Value":"value_from_xpath"
}
]
}
}