2016-08-23 3 views
0

У меня есть веб-проект C#. Я открыл диспетчер конфигурации, для «Конфигурации активных решений» я выбралVisual Studio 2013 использует неправильный файл конфигурации

В новом окне я набрал имя (Dev) и не скопировал никаких настроек. Я проверил «Создать новые конфигурации проекта».

Я щелкнул правой кнопкой мыши по моему Web.config и выбрал «Add Config Transform». Web.Dev.config появился как indited под web.config.

Моя web.config содержит ошибочные значения базы данных:

<connectionStrings> 
    <add name="PdxContext" connectionString="Data Source=badServer; Initial Catalog=badDB; Integrated Security=true; MultipleActiveResultSets=True" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Мои Web.Dev.config, в частности, содержит допустимые значения DB:

<connectionStrings> 
    <add name="PdxContext" connectionString="Data Source=.\sql2012; Initial Catalog=test; Integrated Security=True" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/> 
</connectionStrings> 

... но когда я выбираю Dev и hit run, сайт запускается с использованием файла web.config, а не web.dev.config (он пытается подключиться к несуществующей базе данных с именем «badDB» на хосте «badServer»).

Если я нажимаю правой кнопкой мыши на web.dev.config и выбираю «Preview Transform», Transformed Web.config правильно показывает, что он будет использовать значение connectionStrings из web.dev.config.

О, и в Configuration Manager для Active Solution Конфигурация для «Dev» в столбце конфигурации имеет «Dev».

Любые мысли?

+0

У меня также есть такая же проблема со встроенной конфигурацией отладки. Он игнорирует значения в Web.Debug.config –

+0

Я думаю, что он работает только при развертывании. Но тогда как работают несколько разработчиков, работающих в одном проекте, но с разными конфигурациями? Думаю, им придется иметь собственную копию web.config и перезаписывать web.config с их копией каждый раз, когда они обновляют SVN, которые меняют web.config? Это кажется очень неуклюжим. –

ответ

0

Решение можно найти здесь: https://stackoverflow.com/a/3994081

Если вы используете Visual Studio 2013 также увидеть ответ Матти Прайса на этот пост, «Для тех, кто борется с этим в более поздних версиях VS, я должен был изменить < Target Name = "CopyWebTemplateConfig" BeforeTargets = "Build"> To < Target Name = "CopyWebTemplateConfig" BeforeTargets = "PrepareForBuild"> И все это сработало после этого. "

Смежные вопросы