首先,我们没有使用 Web 应用程序项目,我们使用的是网站类型的项目。
在我们的项目中,我们有 3 个构建配置,它们是:Dev(用于开发)、Demo(用于测试)和 Live(当然是最终版本)。
我们有两个文件(但最终会是 4 个),它们是:
- 网页配置
- Web.Dev.config
第一个片段:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="SomeConnectionString" connectionString="oldConnStr" providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<compilation targetFramework="4.0" debug="false">
<assemblies>
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
</assemblies>
</compilation>
</system.web>
</configuration>
这就是转变:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="SomeConnectionString" connectionString="newConnString" providerName="System.Data.SqlClient" xdt:Transform="Replace" xdt:Locator="Match(name)" />
</connectionStrings>
<system.web>
<compilation debug="true" xdt:Transform="SetAttributes(debug)" />
</system.web>
</configuration>
它根本不起作用,Web.config 也不会变得“可扩展”,截图:
图标来自 Team Foundation Server
有谁知道如何使这项工作?