如何通过 VSTS 发布定义覆盖 Windows 服务 .exe.config 文件中的密钥

2024-05-10

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

为了创建 Windows 服务部署任务,我遵循了这个Windows 服务扩展 https://marketplace.visualstudio.com/items?itemName=julioarrudac.build-deploy-extension

例如我的放置文件夹如下所示:

非常感谢您的参考article https://blogs.msdn.microsoft.com/sonam_rastogi_blogs/2014/08/18/update-configuration-files-using-powershell/这对于使用 Power Shell 命令更改配置文件中的值非常有用。我对该参考链接有疑问: 例如,如果有这样的代码:

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

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


您可以使用分词器任务在发布管理实用程序任务 https://marketplace.visualstudio.com/items?itemName=ms-devlabs.utilitytasks扩大。

  1. 安装发布管理实用程序任务扩展
  2. 使用 XPath/正则表达式任务添加 Tokenizer 以发布定义(指定源文件名和配置 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>

配置Json文件(默认环境是发布定义中的环境名称):

{
   "Default Environment":{
      "CustomVariables":{
         "Token2":"value_from_custom2",
         "Token3":"value_from_custom3"
      },
      "ConfigChanges":[
         {
            "KeyName":"/configuration/appSettings/add[@key='TestKey1']",
            "Attribute":"value",
            "Value":"value_from_xpath"
         }
      ]
   }
}

那么值TestKey1(关键)将与value_from_xpath和价值观TestKey2 and TestKey3将与value_from_custom2 and value_from_custom3.

另一方面,如果不指定配置 Json 文件名,则可以直接使用发布变量。

例如,有__TokenVariable1__在你的配置文件中和TokenVariable1发布定义中的发布/环境变量,然后__TokenVariable1__将被替换为分词器 task.

相关文章:在 vNext/TFS 2015 中使用令牌化(令牌替换)进行构建/发布 https://dustinoprea.com/2016/05/06/using-tokenization-token-replacement-for-buildsreleases-in-tfs-2015/

Update:

您也可以直接通过 PowerShell 完成此操作。

使用 PowerShell 更新配置文件 https://blogs.msdn.microsoft.com/sonam_rastogi_blogs/2014/08/18/update-configuration-files-using-powershell/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过 VSTS 发布定义覆盖 Windows 服务 .exe.config 文件中的密钥 的相关文章

随机推荐