今天我开始在VS 2010中使用web.config
转换。首先,我尝试了相同的hello world示例,其中包含许多关于此主题的博客文章 - 更新连接字符串。
我创建了下面显示的最小示例(类似于this blog中找到的示例)。问题在于每当我进行右键单击时 - > “发布”,或右键单击 - > .csproj文件中的“构建部署包”,我没有得到正确的输出。我没有转换web.config,而是获得了 没有 web.config,而是包含了两个转换文件。
我做错了什么?任何帮助都感激不尽!
的Web.config:
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>
<add name="ConnectionString"
connectionString="server=(local); initial catalog=myDB;
user=xxxx;password=xxxx" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
Web.debug.config:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="ConnectionString"
connectionString="server=DebugServer; initial catalog=myDB;
user=xxxx;password=xxxx"
providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes"
xdt:Locator="Match(name)"/>
</connectionStrings>
</configuration>
Web.release.config:
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<connectionStrings>
<add name="ConnectionString"
connectionString="server=ReleaseServer; initial catalog=myDB;
user=xxxx;password=xxxx"
providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes"
xdt:Locator="Match(name)"/>
</connectionStrings>
</configuration>
答案 0 :(得分:23)
不可避免地,这些事情,答案实际上是在盯着我。 web.config的xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"
节点中存在<configuration>
意味着我的转换不匹配。删除它解决了这个问题。
答案 1 :(得分:2)
在你的web.release.config和web.debug.config文件中为你的转换添加相同的命名空间,ala
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
...
答案 2 :(得分:2)
对我来说,这是:
(1)菜单构建 - 配置管理器
(2)在我的案例中选择活动解决方案正确发布和配置(我选择了Debug,因此没有应用Publish的转换)
答案 3 :(得分:1)
我遇到了类似的问题,修复是因为我为我的环境设置了解决方案配置,但我从未创建过与解决方案配置一致的项目配置。
要检查: