首先,我们没有使用Web应用程序项目,我们正在使用Web站点类型的项目。
在我们的项目中,我们有3种构建配置,分别是:Dev(用于开发),Demo(用于测试)和Live(最终版本)。
我们有两个文件(但最终它们将是4个):
第一段摘录:
<?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
有谁知道如何使这项工作?
答案 0 :(得分:2)
我发现这不能在网站项目中完成。它需要一个.csproj文件,而网站没有。
答案 1 :(得分:1)
您需要一个配置实例来匹配您的web.config转换。例如,为了使Web.Dev.config能够进行编译和转换(在Web部署等过程中),您需要在'Dev'配置中编译项目。
如果您没有定义Dev配置(默认情况下,在启动新的VS项目时通常会获得调试和发布配置),您可以单击下拉框并列出所有可用配置。您通常可以在Visual Studio中的绿色“播放”(开始调试)按钮旁边找到它。选择“Configuration Manager”选项,然后对于所选项目,选择配置下拉列表并选择。然后,您可以创建名为Dev的配置(如果需要,可以从现有配置中复制设置)。完成后,请务必刷新项目树。
值得注意的是,在VS版本(即Ctrl + Shift + B)版本的标准版本中,不应用trasnformations。这些通常在通过Web Deploy或某种部署工具发布应用程序时应用。应用的转换将取决于所选的构建配置。即在'Dev'配置中部署,将应用您的web.dev.config转换。