有人能指出我在这里做错了吗?
我正在尝试设置一个ASP.NET Web应用程序项目,使用两个版本的web.config文件进行编译,用于Release和Debug构建。所以为了简单起见,这是我的web.config:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="WhyMicrosoftSucksSoMuch" connectionString="" 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="WhyMicrosoftSucksSoMuch"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename='C:\FilePath\Database1.mdf';User Instance=true"
providerName="System.Data.SqlClient"
xdt:Transform="SetAttributes" xdt:Locator="Match(connectionString)" />
</connectionStrings>
</configuration>
如果我在Debug配置下发布它,结果web.config看起来不错,但是当我尝试从VS2010运行我的项目也在Debug配置下时,当我的逻辑尝试访问数据库时出现错误:
ConnectionString属性尚未初始化。
那么这里的诀窍是什么?
PS。请不要指向this document。我试过几次读它但是我从这么多多余的信息中感到头疼。我想MS不知道简要是什么。
答案 0 :(得分:4)
在调试模式下运行时,它不会应用任何转换。
它仅在发布期间应用它们。您可以将调试连接字符串放在主web.config中,并将生产连接字符串添加到web.release.config
另外,您可能想要使用
xdt:Transform="Replace"