7

是否可以在web.config转换文件中包含变量?对于每个环境,我都有基本相同的转换,只是具有不同的值。例如,对于开发环境,我有...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的价值vs 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> 

回答

4

这不支持web.config转换。有一件事你可以看看是创建一个T4 Template它可以用来生成你的web.config转换。所以想法是把变量放在T4模板中,它会吐出web.debug.config/web.release.config/etc。然后,当你打包/发布时,它只会选择作为T4输出生成的转换文件。

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