Web.Config 转换不改变任何值
Web.Config Transform not changing any values
我正在尝试设置一个 web.config 转换来修改一些值。我正在使用 Octopus Deploy 给出的这个例子:
http://docs.octopusdeploy.com/display/OD/Configuration+files
超精简版 web.config:
<?xml version="1.0" ?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<compilation debug="true" targetFramework="4.0">
</compilation>
</system.web>
</configuration>
变换:
<?xml version="1.0" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
输出:
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<compilation debug="true" targetFramework="4.0">
</compilation>
</system.web>
</configuration>
我正在使用这个工具来预览转换:
https://webconfigtransformationtester.apphb.com/
如您所见,它什么也没做。我看过很多例子,但显然我遗漏了一些东西。任何帮助将不胜感激。
(我也尝试过但没有成功):
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation debug="false" xdt:Transform="Replace">
</compilation >
</system.web>
</configuration>
当您将 web.config 文件的命名空间从
更改为
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
到
<configuration xmlns:xdt="http://schemas.microsoft.com/.NetConfiguration/v2.0">
当这个变换
<?xml version="1.0" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
应用于调整后的web.config
<?xml version="1.0" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<compilation debug="true" targetFramework="4.0">
</compilation>
</system.web>
</configuration>
debug
属性已从结果中删除:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<compilation targetFramework="4.0">
</compilation>
</system.web>
</configuration>
更新: 如评论中所述,web.config 文件的配置根本不应该有任何名称空间。相反,有必要添加此导入
<xdt:Import assembly="AppHarbor.TransformTester"
namespace="AppHarbor.TransformTester.Transforms"/>
到转换文件(至少,在使用提到的在线转换测试器进行测试时):
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<xdt:Import assembly="AppHarbor.TransformTester"
namespace="AppHarbor.TransformTester.Transforms"/>
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
我正在尝试设置一个 web.config 转换来修改一些值。我正在使用 Octopus Deploy 给出的这个例子:
http://docs.octopusdeploy.com/display/OD/Configuration+files
超精简版 web.config:
<?xml version="1.0" ?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<compilation debug="true" targetFramework="4.0">
</compilation>
</system.web>
</configuration>
变换:
<?xml version="1.0" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
输出:
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<compilation debug="true" targetFramework="4.0">
</compilation>
</system.web>
</configuration>
我正在使用这个工具来预览转换: https://webconfigtransformationtester.apphb.com/
如您所见,它什么也没做。我看过很多例子,但显然我遗漏了一些东西。任何帮助将不胜感激。
(我也尝试过但没有成功):
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation debug="false" xdt:Transform="Replace">
</compilation >
</system.web>
</configuration>
当您将 web.config 文件的命名空间从
更改为<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
到
<configuration xmlns:xdt="http://schemas.microsoft.com/.NetConfiguration/v2.0">
当这个变换
<?xml version="1.0" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>
应用于调整后的web.config
<?xml version="1.0" ?>
<configuration xmlns:xdt="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<compilation debug="true" targetFramework="4.0">
</compilation>
</system.web>
</configuration>
debug
属性已从结果中删除:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>
<compilation targetFramework="4.0">
</compilation>
</system.web>
</configuration>
更新: 如评论中所述,web.config 文件的配置根本不应该有任何名称空间。相反,有必要添加此导入
<xdt:Import assembly="AppHarbor.TransformTester"
namespace="AppHarbor.TransformTester.Transforms"/>
到转换文件(至少,在使用提到的在线转换测试器进行测试时):
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<xdt:Import assembly="AppHarbor.TransformTester"
namespace="AppHarbor.TransformTester.Transforms"/>
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
</system.web>
</configuration>