Практическое руководство. Отключение преобразования Web.config

В файлах Web.config обычно содержатся параметры, которые должны иметь различные значения в зависимости от среды, в которой выполняется приложение. Например, файл разработки Web.config может запускать отладку, однако возможно ее не требуется запускать в рабочей среде. Можно создать файлы преобразования для автоматического внесения изменений, применяемых к файлам Web.config при развертывании. Дополнительные сведения см. в разделе Практическое руководство. Преобразование файла Web.config при развертывании проекта веб-приложения.

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

Если применять преобразования к конфигурации построения не требуется, можно использовать один из следующих способов.

  • Закомментировать конкретные преобразования в файле преобразования. Этот способ подойдет для большинства сценариев, поскольку, как правило, требуется применить остальные преобразования. Даже в случае, когда необходимо временно удалить преобразование, отключающее отладку, возможно требуется запустить преобразование, изменяющее строку подключения базы данных.

  • Переименовать файл преобразования для конфигурации построения, чтобы его имя не соответствовало определенной конфигурации построения. Например, можно изменить имя Web.Debug.config на Web.Debugx.config. (Переименование выполняется вне среды Visual Studio. Эти файлы невозможно переименовать в окне Обозреватель решений.)

  • Удалить файл преобразования для конфигурации построения (файл с именем Web.имя_конфигурации.config). Если файл преобразования был настроен, все настройки будут потеряны.

  • Изменить файл проекта, указав, что применять преобразования не требуется. При использовании этого способа можно также отключить автоматическое преобразование строки подключения, которое выполняется, когда к имени записи в таблице Записи базы данных на вкладке Пакет/Публикация веб-сайта страницы Свойства проекта добавляется суффикс "-Web.config". (Дополнительные сведения о том, как задать автоматическое преобразование строки подключения при развертывании, см. в части Строка подключения для конечной базы данных раздела Вкладка "Упаковка/Публикация SQL", страница свойств проекта.)

В следующей процедуре описывается последний из этих вариантов: изменение файла проекта.

Чтобы отключить преобразования для конфигурации построения, добавьте элемент TransformWebConfigEnabled в файл проекта и задайте ему значение False.

Изменение файла проекта

  1. Откройте в текстовом редакторе PROJECT-файл проекта (VBPROJ-файл или CSPROJ-файл).

    Если проект является одним из проектов решения, включающего несколько проектов, щелкните правой кнопкой мыши имя проекта в окне Обозреватель решений и выберите команду Отменить загрузку проекта, затем щелкните правой кнопкой мыши проект и выберите команду Изменить. Если проект не входит в решение, перейдите к папке проекта с помощью проводника Windows и откройте CSPROJ-файл или VBPROJ-файл в приложении Блокнот или другом текстовом редакторе. (Путь к файлу проекта отображается в поле Папка проекта окна Свойства.)

  2. Найдите элемент PropertyGroup, относящийся к конфигурации построения, для которой задаются параметры.

    Например, если параметры создаются для конфигурации построения Debug, выполните поиск элемента PropertyGroup со следующим открывающим тегом:

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">

    В этом элементе добавьте элементы TransformWebConfigEnabled и AutoParameterizationWebConfigConnectionStrings, как показано в следующем примере:

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
      <TransformWebConfigEnabled>False</TransformWebConfigEnabled>
      <AutoParameterizationWebConfigConnectionStrings>
        False
      </AutoParameterizationWebConfigConnectionStrings>
      <DebugSymbols>true</DebugSymbols>
      <DebugType>full</DebugType>
      <Optimize>false</Optimize>
      <OutputPath>bin\</OutputPath>
      <DefineConstants>DEBUG;TRACE</DefineConstants>
      <ErrorReport>prompt</ErrorReport>
      <WarningLevel>4</WarningLevel>
    </PropertyGroup>
    
  3. Сохраните изменения и закройте файл проекта.

  4. Если изменения в файл проекта были внесены с помощью отмены загрузки проекта, щелкните правой кнопкой мыши проект в окне Обозреватель решений и выберите команду Перезагрузить проект.

Показ: