Отладка / выпуск Web.Config

Я знаю, что web.config в Visual Studio 2010 обеспечивает возможность переключения из баз данных из режима отладки в режим выпуска.

Вот мой Web.Release.config:

           

Вот мой код Web.Debug.config:

            

И это мой код Web.config:

                                 

Когда я публикую свой проект, в моем файле Web.config ничего не отображается. Не отображается ли строка подключения к Live Database?

Преобразование web.config, которые являются частью Visual Studio 2010, использует XSLT для «преобразования» текущего файла web.config в его .Debug или .Release версию.

В ваших файлах .Debug / .Release вам нужно добавить следующий параметр в поля строки подключения:

 xdt:Transform="SetAttributes" xdt:Locator="Match(name)" 

Это приведет к тому, что каждая строка строки соединения найдет соответствующее имя и соответствующим образом обновит атрибуты.

Примечание. Вам не придется беспокоиться об обновлении параметра providerName в файлах преобразования, поскольку они не меняются.

Вот пример из одного из моих приложений. Вот раздел файла web.config:

    

И вот раздел web.config.release, выполняющий правильное преобразование:

    

Одно добавленное примечание. Трансформирование происходит только при публикации сайта, а не при простое его с помощью F5 или CTRL + F5. Если вам нужно запустить обновление с заданным конфигом локально, вам придется вручную изменить файл Web.config для этого.

Для получения дополнительной информации вы можете увидеть документацию MSDN

https://msdn.microsoft.com/en-us/library/dd465326(VS.100).aspx

Возможно использование цели построения ConfigTransform в виде пакета Nuget – https://www.nuget.org/packages/CodeAssassin.ConfigTransform/

Все файлы преобразования «web. * .Config» будут преобразованы и выведены в виде серии файлов «web. *. Config.transformed» в каталоге вывода сборки независимо от выбранной конфигурации сборки.

То же самое относится к файлам преобразования «app. *. Config» в не-веб-проектах.

а затем добавив следующую цель в ваш *.csproj .

    

Отправка ответа, поскольку это первый пост Stackoverflow, который появляется в Google по этому вопросу.

Чтобы преобразование работало в разработке (с использованием F5 или CTRL + F5), я отбрасываю ctt.exe ( https://ctt.codeplex.com/ ) в папке пакетов (packages \ ConfigTransform \ ctt.exe).

Затем я регистрирую событие pre-or post-build в Visual Studio …

 $(SolutionDir)packages\ConfigTransform\ctt.exe source:"$(ProjectDir)connectionStrings.config" transform:"$(ProjectDir)connectionStrings.$(ConfigurationName).config" destination:"$(ProjectDir)connectionStrings.config" $(SolutionDir)packages\ConfigTransform\ctt.exe source:"$(ProjectDir)web.config" transform:"$(ProjectDir)web.$(ConfigurationName).config" destination:"$(ProjectDir)web.config" 

Для преобразований я использую расширение SlowCheeta VS ( https://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5 ).

Если вы собираетесь заменить все строки подключения новостями для производственной среды, вы можете просто заменить все строки подключения на производственные, используя этот синтаксис:

       .... 

Информация для этого ответа взята из этого ответа и этого сообщения в блоге .

Обратите внимание : как уже объясняли другие, этот параметр применяется только тогда, когда приложение не публикует при запуске / отладке (путем нажатия F5).

  • Прочтите строку подключения из web.config
  • Настройка перенаправления в файле web.config
  • Как заблокировать пути в ASP.NET MVC?
  • Для чего нужны файлы Web.Debug.config и Web.Release.Config?
  • Добавить пользовательский заголовок на основе типа файла
  • Как зашифровать одну запись в web.config
  • Ограничить доступ к определенному controllerу по IP-адресу в бета-версии ASP.NET MVC
  • Ошибка использования раздела, зарегистрированного как allowDefinition = 'MachineToApplication', превышающего уровень приложения
  • Раздел конфигурации «system.web.extensions» не может быть прочитан, потому что отсутствует объявление раздела
  • Удаление .aspx со страниц с использованием rewriteModule?
  • Измените web.config программно с помощью C # (.NET)
  • Давайте будем гением компьютера.