Deployment 如何通过VSTS发布定义覆盖windows services.exe.config文件中的密钥

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>

我正在执行VSTS发布任务以部署Windows服务项目。不幸的是,我们没有为创建放置文件夹创建任何构建定义。 但是,我的客户端将为此项目提供drop文件夹,我需要的是在版本级别“我想覆盖现有.exe.config文件的密钥”

为了创建Windows服务部署任务,我遵循以下步骤

例如,我的drop文件夹如下所示:

非常感谢您的参考,它对于使用powershell命令更改配置文件中的值非常有用。我对参考链接中的以下内容表示怀疑: 例如,如果有这样的代码:

<erecruit.tasks>
<tasks>
  <task name="AA" taskName="AA">
    <parameters>
      <param key="connectionString">Server="XXXX"</param>
    </parameters>
</task>

Server=“XXXX”

如何更改上述连接字符串值?

您可以在扩展中使用标记器任务

  • 安装版本管理实用程序任务扩展
  • 将带有XPath/正则表达式任务的标记器添加到发布定义(指定源文件名和配置Json文件名)
  • 配置文件示例:

    <?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"
             }
          ]
       }
    }