Отладка / выпуск 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?
  • Что делает файл Web.Config в папке представлений проекта MVC
  • Как заблокировать пути в ASP.NET MVC?
  • Ограничить доступ к определенному controllerу по IP-адресу в бета-версии ASP.NET MVC
  • Как заставить HTTPS использовать файл web.config
  • web.config перенаправляет не-www на www
  • Переменные в app.config / web.config
  • Как использовать преобразование Web.Config в строках подключения?
  • Плюсы и минусы AppSettings vs applicationSettings (.NET app.config / Web.config)
  • Access-control-allow-origin с несколькими доменами
  • Interesting Posts

    Каков наилучший способ открыть и прочитать файл в Perl?

    Что такое идеальное соглашение об именах переменных для переменных цикла?

    Лучший способ автоматической привязки данных между базой данных и пользовательским интерфейсом в приложении java swing?

    Можно ли удалить папку SkyDrive с моего компьютера, но не из облачного хранилища SkyDrive?

    Встраивание карт Google в приложение для Java-приложений

    Выбор значения null: в чем причина «selectAll (null)» в D3.js?

    Как анализировать дату с GMT TimeZone на IST TimeZone и наоборот в android

    Автоматически переименовывать файл, если он уже существует в Windows

    Какой лучший дизайн базы данных: больше таблиц или больше столбцов?

    Заблокируйте раздел реестра, чтобы предотвратить переписывание или удаление случайно или намеренно с помощью командной строки

    div class vs id

    Обработка скобок при преобразовании инфиксных выражений в постфиксные выражения

    Как определить, является ли текущая версия Windows 32-разрядной или 64-разрядной из командной строки?

    ByRef vs ByVal Clarification

    Маршрутизация с несколькими параметрами с использованием ASP.NET MVC

    Давайте будем гением компьютера.