XML 转换无效

XML transformation not working

我已经将 SlowCheetah 扩展和 Nuget 包安装到我的控制台应用程序项目中。我使用上下文菜单添加 UAT 构建配置并更新测试设置以检查值是否正在转换。

不幸的是,当我尝试通过上下文菜单预览转换时,它只显示未转换的 App.Config。

我可以通过哪些步骤来检查为什么此扩展不起作用?

在主要的 App Config 中,我指定了一个 appSetting。

<appSettings>
    <add key="TomTestTransform" value="LOCAL" />
</appSettings>

在App.UAT.config我覆盖了

<appSettings>
    <add key="TomTestTransform" value="UAT" />
</appSettings>

当我预览转换或构建并检查配置输出时,它始终使用非转换版本。设置等于 LOCAL。

您需要使用 xdt: 属性来匹配和适配元素,例如:

<?xml version="1.0" encoding="utf-8" ?>
<!-- For more information on using transformations 
 see the web.comfig examples at http://go.microsoft.com/fwlink/?LinkId=214134. -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <appSettings>
    <add key="TomTestTransform"
         value="UAT"
         xdt:Transform="Replace"
         xdt:Locator="Match(key)" />
  </appSettings>
</configuration>

使用 xdt:Locator="Match(key)" 告诉处理器根据 key 属性匹配 add 元素,并在整个(定位的)元素上应用 xdt:Transform="Replace" 逻辑.

a msdn entry 可用于可能的 XML 转换,这也适用于 SlowCheetah 转换,因为它们基于相同的 "technology"。

此外,extension overview 中也有一些很好的文档!