2012-02-22 2 views
2

Может кто-нибудь указать мне, что я делаю неправильно здесь?Невозможно определить web.debug.config vs. web.config заместителя в VS2010

Я пытаюсь создать проект веб-приложения ASP.NET для компиляции с двумя версиями файла 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 не знает, что краткое есть.

ответ

4

При запуске в режиме отладки он не применяет никаких преобразований.

Применяется только при публикации. Вы можете поместить строку соединения отладки в главном web.config, и добавьте строку подключения производства к web.release.config

также, вы, вероятно, хотите использовать

xdt:Transform="Replace" 
Смежные вопросы