Для чого потрібні файли Web.Debug.config та Web.Release.Config?


111

Щойно я перейшов до Visual Studio 2010 та MVC 2.0, і я помітив, що до нього додаються два додаткові файли Web.config? Чи використовуються ці файли для встановлення налагодження та випуску конкретних налаштувань, щоб ви не захаращували головну Web.config?

Чи має сенс розміщувати рядок підключення у кореневому файлі Web.config, якщо я маю локальну та віддалену у відладці та випускаю Web.configs відповідно?

Дякую!

Відповіді:


97

Це нова функція перетворення Web.config Visual Studio 2010. Більше інформації тут .


Редагувати:

Чи використовуються ці файли для встановлення налагодження та випуску конкретних налаштувань, щоб ви не захаращували основний web.config?

Вона не обмежується трьома файлами, ви можете (теоретично) мати стільки файлів, скільки у вас є середовища. "Верхній рівень" Web.config надає шаблон вашої веб-конфігурації. Файли під ним містять значення заміни, характерні для цього середовища (наприклад, якщо у вас є різні рядки підключення для локальних / етап / тест / будь-які інші)

Чи має сенс розміщувати рядок підключення у кореневому файлі web.config, якщо у мене є локальний та віддалений у налагодженні та випустіть web.configs відповідно.

Це має сенс лише в тому випадку, якщо він не збирається змінюватися між середовищами. Здається, що у вашому випадку це так, у вашому випадку ні, не було б сенсу залишати це в Web.config.


12
Ця функція наполовину запечена, навіть через 4 роки! Він працює лише при розгортанні пакетів для лазурного видання / публікації. Ось цікава тема: forums.asp.net/t/1532038.aspx
Nick

12

Це файли перетворень Web.config. З веб-розгортання ASP.NET за допомогою Visual Studio: Перетворення файлів Web.config :

Є два способи автоматизації процесу зміни параметрів файлу Web.config: перетворення Web.config та параметри Web Deploy. Файл перетворення Web.config містить розмітку XML, яка визначає, як змінити файл Web.config при його розгортанні. Ви можете вказати різні зміни для конкретних конфігурацій збірки та для конкретних профілів публікації. Конфігурації збірки за замовчуванням - «Налагодження» та «Випуск», і ви можете створювати власні конфігурації збірки. Профіль публікації зазвичай відповідає середовищу призначення.


1

Якщо хтось зацікавлений, ось що я написав, щоб мати динамічний рядок з'єднання для середовища. Я хотів розгорнути код у будь-якому середовищі (Dev, Test, Pre-Prod, Prod ...), не турбуючись про зміну рядків з'єднання. Я не міг знайти хорошого способу зробити це з Asp.Net MVC 4, тому я придумав власний спосіб покластися на файл властивостей для середовища.

Можливо, буде краще рішення, я прийшов з фону Wicket / Java і нещодавно почав розробку з MVC 4, тож можливо, краще рішення існує. Але ось посилання на моє запитання та відповідь для динамічного рядка з'єднання:

Asp.net MVC 4 динамічний рядок з'єднання


-3

Це було щось давно потрібне В.С. На жаль, схоже, є проблема з реалізацією. Наприклад, розглянемо цей сценарій (VS.2010 Ultimate, всі SP):

Web.Config

  • Немає з'єднання
  • Повний член користувача / роль / тощо. Конфігурація постачальника за допомогою connectionStringName = "тест"

Web.Release.Config

  • Немає конфігурації членства (вже вказано в основному web.config)
  • розділ connectionStrings, включаючи CS з назвою "test"

Web.Debug.Config

  • Немає конфігурації членства (вже вказано в основному web.config)
  • розділ connectionStrings, включаючи CS з назвою "test"

При виконанні програми додає таку помилку:

Ім'я підключення 'test' не знайдено в конфігурації програм або рядок з'єднання порожній.

Іншими словами, оскільки елементи рядкових з'єднань знаходяться у файлах дизайнера Release / Debug та використовуються елементами конфігурації в головному (Web.config) файлі, він не може її вирішити.


5
Справедливості, якщо у вас є рядок підключення, названий testяк у вашому файлі налагодження, так і у випуску конфігураційних файлів, він дійсно повинен бути просто в основному web.config з відповідними розділами. Ви є дублюючим кодом, який має вирішити шаблон.
R0MANARMY

3
-1: Цей дуже старий пост був повним помилковим тлумаченням використання перетворень веб-конфігурацій. 1 Це насправді не відповідь (просто неправильна скарга) і 2 це не просте злиття елементів, як мається на увазі тут. Ви повинні мати явні xsltкоманди заміни. Молодці, щоб отримати 5 оновлень за те, що додає плутанини щодо цих файлів перетворення :)
Пройшло кодування
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.