Web.config转换变量

时间:2011-03-07 21:21:13

标签: web-deployment-project msdeploy webdeploy web-config-transform

是否可以在web.config转换文件中包含变量?对于每个环境,我有基本相同的转换,只是具有不同的值。例如,对于开发环境,我有......

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <appSettings>
        <add key="serverName" value="server1" xdt:Transform="Replace" xdt:Locator="Match(key)" />
        <add key="serverPath" value="\\server1" xdt:Transform="Replace" xdt:Locator="Match(key)" />
    </appSettings>
</configuration>

对于QA环境,我有......

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <appSettings>
        <add key="serverName" value="server2" xdt:Transform="Replace" xdt:Locator="Match(key)" />
        <add key="serverPath" value="\\server2" xdt:Transform="Replace" xdt:Locator="Match(key)" />
    </appSettings>
</configuration>

唯一的区别是server1与server2的值。这是一个简单的例子,实际上,我在转换中多次使用服务器值。有没有办法在变换文件中声明一个变量多次使用?有点像...

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
    <property name="server" value="server2" />
    <appSettings>
        <add key="serverName" value="${server}" xdt:Transform="Replace" xdt:Locator="Match(key)" />
        <add key="serverPath" value="\\${server}" xdt:Transform="Replace" xdt:Locator="Match(key)" />
    </appSettings>
</configuration>

2 个答案:

答案 0 :(得分:4)

web.config转换不支持此功能。您可以看一下的一件事是创建一个T4 Template,它可用于生成您的web.config转换。因此,想法是将变量放在T4模板中,它会吐出web.debug.config / web.release.config / etc.然后,当你打包/发布它时,它将只获取作为T4输出生成的转换文件。

如果你能提供一些有用的具体例子,我不介意帮你做这件事。

答案 1 :(得分:0)

相关问题