Azure devops 如何使用Visual Studio Online和.NET桌面应用程序进行文件转换/变量替换

Azure devops 如何使用Visual Studio Online和.NET桌面应用程序进行文件转换/变量替换,azure-devops,azure-pipelines-release-pipeline,ms-release-management,Azure Devops,Azure Pipelines Release Pipeline,Ms Release Management,Visual Studio Team Services Online(www.visualstudio.com)发布定义在IIS Web App Deploy中有一个设置,用于执行XML变量替换。基于联机帮助: 生成或发布定义中定义的变量将与任何配置文件和parameters.xml的appSettings、applicationSettings和connectionStrings部分中的“key”或“name”项相匹配。变量替换在配置转换后运行 部署面向.NET桌面的版本(用于桌面应用程序或W

Visual Studio Team Services Online(www.visualstudio.com)发布定义在
IIS Web App Deploy
中有一个设置,用于执行XML变量替换。基于联机帮助:

生成或发布定义中定义的变量将与任何配置文件和parameters.xml的appSettings、applicationSettings和connectionStrings部分中的“key”或“name”项相匹配。变量替换在配置转换后运行

部署面向.NET桌面的版本(用于桌面应用程序或Windows服务)时,是否可以应用任何此类简单的任务?具体地说,我想替换
appSettings.config
文件的
value
部分键值元素(或者,编译后它们现在是
*.exe.config


我见过一些代币替换市场附加组件,但它们不起作用。它们将替换appSetting的
部分,但不基于
。我可能会用鞋尖磨它,但它不雅观且易碎。

您可以添加这两个vsts扩展来完成这项工作

从这一秒开始,您希望使用标记器任务


它们都有很好的文档记录,因此您可以实施。

根据@Rodrigo werlang的回答,这里有一个更完整的解决方案:

1) 创建XDT转换文件。我遵循了一个线程,该线程让我编辑.csproj文件以创建
app.debug.config
,但最终这并不是必需的。我将文件创建为
Release.config
,并使用
web.Release.config
文件作为转换的基础

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <appSettings>
    <add key="MagicKey" value="#{MagicKey}#" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
  </appSettings>
</configuration>

.  将
Release.config
设置应用于右侧的
.exe.config
文件注意工作文件夹-它默认为源代码目录,我想应用于构建工件文件夹

3) 添加用于标记化的任务。我用的是纪尧姆·鲁琼(Guillaume Rouchon)的,尽管我怀疑任何标记器都可以正常工作。再次注意工作目录。


4) 按照正常值设置发布变量。

谢谢@Rodrigo-这需要更多的技巧(见我的答案),但在你的帮助下,我最终得到了它!将在计时器过期时执行。有没有任何工具可以像XML转换一样转换多个JSON文件?