Поделиться через


Настройка приложений с помощью файлов конфигурации

Заметка

Эта статья связана с .NET Framework. Он не применяется к более новым реализациям .NET, включая .NET 6 и более поздние версии.

Платформа .NET Framework предоставляет разработчикам и администраторам контроль и гибкость в отношении того, как приложения выполняются через файлы конфигурации. Файлы конфигурации — это XML-файлы, которые можно изменить по мере необходимости. Администратор может управлять доступом к защищенным ресурсам, к которым может получить доступ приложение, какие версии сборок будет использовать приложение, а также расположение удаленных приложений и объектов. Разработчики могут помещать параметры в файлы конфигурации, устраняя необходимость повторной компиляции приложения при каждом изменении параметра. В этом разделе описывается, что можно настроить и почему можно настроить приложение.

Заметка

Управляемый код может использовать классы в пространстве имен System.Configuration для чтения параметров из файлов конфигурации, но не для записи параметров в эти файлы.

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

Формат файла конфигурации

Файлы конфигурации содержат элементы, которые являются логическими структурами данных, которые задают сведения о конфигурации. В файле конфигурации теги используются для пометки начала и конца элемента. Например, элемент <runtime> состоит из <runtime>дочерних элементов</runtime>. Пустой элемент будет записан как <runtime/> или <runtime></runtime>.

Как и во всех XML-файлах, синтаксис в файлах конфигурации чувствителен к регистру.

Параметры конфигурации указываются с помощью предопределенных атрибутов, которые являются парами name/value в теге запуска элемента. В следующем примере указываются два атрибута (version и href) для элемента <codeBase>, показывающего, где именно окружение выполнения может обнаружить сборку (дополнительные сведения см. 'Указания по расположению сборки').

<codeBase version="2.0.0.0"
          href="http://www.litwareinc.com/myAssembly.dll"/>

Файлы конфигурации компьютера

Файл конфигурации компьютера Machine.configсодержит параметры, которые применяются ко всему компьютеру. Этот файл находится в каталоге \Config пути установки исполняемой среды %%. Machine.config содержит настройки конфигурации для связывания сборок на уровне всей системы, встроенных каналов удаленного взаимодействияи ASP.NET.

Система конфигурации сначала выглядит в файле конфигурации компьютера для <appSettings> элемента и других разделов конфигурации, которые разработчик может определить. Затем он будет выглядеть в файле конфигурации приложения. Чтобы сохранить управляемый файл конфигурации компьютера, рекомендуется поместить эти параметры в файл конфигурации приложения. Однако размещение параметров в файле конфигурации компьютера может повысить удобство обслуживания системы. Например, если у вас есть сторонний компонент, который использует клиентское и серверное приложение, проще поместить параметры этого компонента в одно место. В этом случае файл конфигурации компьютера является подходящим местом для параметров, поэтому у вас нет одинаковых параметров в двух разных файлах.

Заметка

Развертывание приложения с помощью XCOPY не копирует параметры в файле конфигурации компьютера.

Дополнительные сведения о том, как среда CLR использует файл конфигурации компьютера для привязки сборок, см. в статье Как среда выполнения находит сборки.

Файлы конфигурации приложения

Файл конфигурации приложения содержит параметры, относящиеся к приложению. Этот файл включает параметры конфигурации, считываемые общеязыковой средой выполнения (CLR) (например, политика привязки сборок, объекты удаленного взаимодействия и т. д.), а также параметры, которые может считывать приложение.

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

  • Приложение, размещенное в исполняемом файле.

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

    По умолчанию имя исходного файла конфигурации — App.config. При создании проекта .NET Framework в Visual Studio в проект автоматически добавляется файл App.config. Вы также можете добавить файл вручную, выбрав файл>новый файл. Поместите файл App.config в каталог проекта и задайте для свойства Copy To Output Directory значение Копировать всегда или Копировать, если новее.

    Чтобы создать выходной файл конфигурации, развернутый с помощью приложения, Visual Studio копирует исходный файл конфигурации в каталог, где размещена скомпилированная сборка. Этот файл называется <>.exe.configyourappname. Например, приложение с именем myApp.exe имеет выходной файл конфигурации с именем myApp.exe.config.

    В некоторых случаях Visual Studio может изменить выходной файл конфигурации. Дополнительные сведения см. в версиях перенаправления на уровне приложения.

  • ASP.NET хостируемое приложение.

    Дополнительные сведения о файлах конфигурации ASP.NET см. в ASP.NET параметрах конфигурации.

Файлы конфигурации безопасности

Файлы конфигурации безопасности содержат сведения о иерархии групп кода и наборах разрешений, связанных с уровнем политики. Настоятельно рекомендуется использовать средство политики безопасности доступа к коду (Caspol.exe) для изменения политики безопасности, чтобы убедиться, что изменения политики не повреждают файлы конфигурации безопасности.

Заметка

Начиная с .NET Framework 4 файлы конфигурации безопасности присутствуют только в том случае, если политика безопасности была изменена.

Файлы конфигурации безопасности находятся в следующих расположениях:

  • Файл конфигурации корпоративной политики: %путь установки среды выполнения%\Config\Enterprisesec.config

  • Файл конфигурации политики компьютера: %путь установки среды выполнения%\Config\Security.config

  • Файл конфигурации политики пользователя: %USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.config

См. также