Configurando aplicativos usando arquivos de configuraçãoConfiguring Apps by using Configuration Files

O .NET Framework, por meio de arquivos de configuração, fornece aos desenvolvedores e administradores controle e flexibilidade sobre a maneira de executar aplicativos.The .NET Framework, through configuration files, gives developers and administrators control and flexibility over the way applications run. Os arquivos de configuração são arquivos XML que podem ser alterados quando necessário.Configuration files are XML files that can be changed as needed. Um administrador pode controlar quais recursos protegidos um aplicativo pode acessar, quais versões de assemblies um aplicativo usará e onde os aplicativos e objetos remotos são localizados.An administrator can control which protected resources an application can access, which versions of assemblies an application will use, and where remote applications and objects are located. Os desenvolvedores podem colocar definições em arquivos de configuração, eliminando a necessidade de recompilar um aplicativo sempre que uma configuração é alterada.Developers can put settings in configuration files, eliminating the need to recompile an application every time a setting changes. Esta seção descreve o que pode ser configurado e por que a configuração de um aplicativo pode ser útil.This section describes what can be configured and why configuring an application might be useful.

Observação

O código gerenciado pode usar as classes no namespace System.Configuration para ler configurações dos arquivos de configuração, mas não para gravar configurações nesses arquivos.Managed code can use the classes in the System.Configuration namespace to read settings from the configuration files, but not to write settings to those files.

Este tópico descreve a sintaxe dos arquivos de configuração e fornece informações sobre os três tipos de arquivos de configuração: computador, aplicativo e segurança.This topic describes the syntax of configuration files and provides information about the three types of configuration files: machine, application, and security.

Formato do arquivo de configuraçãoConfiguration File Format

Os arquivos de configuração contêm elementos que são estruturas de dados lógicas que definem informações de configuração.Configuration files contain elements, which are logical data structures that set configuration information. Em um arquivo de configuração, você usa marcas para marcar o início e o fim de um elemento.Within a configuration file, you use tags to mark the beginning and end of an element. Por exemplo, o elemento <runtime> consiste em <runtime>elementos filho</runtime>.For example, the <runtime> element consists of <runtime>child elements</runtime>. Um elemento vazio seria escrito como <runtime/> ou <runtime></runtime>.An empty element would be written as <runtime/> or <runtime></runtime>.

Como com todos os arquivos XML, a sintaxe em arquivos de configuração diferencia maiúsculas de minúsculas.As with all XML files, the syntax in configuration files is case-sensitive.

Você especifica configurações usando atributos predefinidos que são pares de nome/valor na marca inicial de um elemento.You specify configuration settings using predefined attributes, which are name/value pairs inside an element's start tag. O exemplo a seguir especifica dois atributos (version e href) para o elemento <codeBase> que especifica onde o tempo de execução pode localizar um assembly (para obter mais informações, consulte Especificando o local de um assembly).The following example specifies two attributes (version and href) for the <codeBase> element, which specifies where the runtime can locate an assembly (for more information, see Specifying an Assembly's Location).

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

Arquivos de configuração de computadorMachine Configuration Files

O arquivo de configuração do computador, Machine.config, contém configurações que se aplicam a um computador inteiro.The machine configuration file, Machine.config, contains settings that apply to an entire computer. Esse arquivo está localizado no diretório %runtime install path%\Config.This file is located in the %runtime install path%\Config directory. Machine.config contém as definições de configuração para associação de assembly em todo o computador, canais remotos internos e ASP.NET.Machine.config contains configuration settings for machine-wide assembly binding, built-in remoting channels, and ASP.NET.

O sistema de configuração primeiro procura o elemento <appSettings> no arquivo de configuração do computador e outras seções de configuração que um desenvolvedor pode definir.The configuration system first looks in the machine configuration file for the <appSettings> element and other configuration sections that a developer might define. Em seguida, ele examina o arquivo de configuração de aplicativo.It then looks in the application configuration file. Para manter o arquivo de configuração do computador gerenciável, é melhor colocar essas configurações no arquivo de configuração de aplicativo.To keep the machine configuration file manageable, it is best to put these settings in the application configuration file. No entanto, colocar as configurações no arquivo de configuração do computador pode tornar seu sistema mais sustentável.However, putting the settings in the machine configuration file can make your system more maintainable. Por exemplo, se você tiver um componente de terceiros que seu aplicativo para cliente e servidor use, será mais fácil colocar as configurações para esse componente em um local.For example, if you have a third-party component that both your client and server application uses, it is easier to put the settings for that component in one place. Nesse caso, o arquivo de configuração do computador será o local apropriado para as configurações de forma que você não terá as mesmas configurações em dois arquivos diferentes.In this case, the machine configuration file is the appropriate place for the settings, so you don't have the same settings in two different files.

Observação

Implantar um aplicativo que use XCOPY não copiará as configurações no arquivo de configuração do computador.Deploying an application using XCOPY will not copy the settings in the machine configuration file.

Para obter mais informações de como o Common Language Runtime usa o arquivo de configuração do computador para a associação de assembly, consulte Como o tempo de execução localiza assemblies.For more information about how the common language runtime uses the machine configuration file for assembly binding, see How the Runtime Locates Assemblies.

Arquivos de configuração de aplicativoApplication Configuration Files

Um arquivo de configuração de aplicativo contém configurações específicas para um aplicativo.An application configuration file contains settings that are specific to an app. Esse arquivo inclui configurações que o Common Language Runtime lê (como política de associação de assembly, objetos remotos e assim por diante), além das configurações que o aplicativo pode ler.This file includes configuration settings that the common language runtime reads (such as assembly binding policy, remoting objects, and so on), and settings that the app can read.

O nome e o local do arquivo de configuração de aplicativo dependem do host do aplicativo que pode ser um dos seguintes:The name and location of the application configuration file depend on the app's host, which can be one of the following:

  • Aplicativo hospedado em executável.Executable–hosted app.

    Esses aplicativos têm dois arquivos de configuração: um arquivo de configuração de origem, que é modificado pelo desenvolvedor durante o desenvolvimento, e um arquivo de saída que é distribuído com o aplicativo.These apps have two configuration files: a source configuration file, which is modified by the developer during development, and an output file that is distributed with the app.

    Ao desenvolver no Visual Studio, coloque o arquivo de configuração de origem do aplicativo no diretório do projeto e defina sua propriedade Copiar para Diretório de Saída como Copiar sempre ou Copiar se for mais novo.When you develop in Visual Studio, place the source configuration file for your app in the project directory and set its Copy To Output Directory property to Copy always or Copy if newer. O nome do arquivo de configuração é o nome do aplicativo com uma extensão .config.The name of the configuration file is the name of the app with a .config extension. Por exemplo, um aplicativo chamado myApp.exe deve ter um arquivo de configuração de origem chamado myApp.exe.config.For example, an app called myApp.exe should have a source configuration file called myApp.exe.config.

    O Visual Studio copia automaticamente o arquivo de configuração de origem para o diretório onde o assembly compilado é colocado para criar o arquivo de configuração de saída que é implantado com o aplicativo.Visual Studio automatically copies the source configuration file to the directory where the compiled assembly is placed to create the output configuration file, which is deployed with the app. Em alguns casos, o Visual Studio pode modificar o arquivo de configuração de saída. Para obter mais informações, consulte a seção Redirecting assembly versions at the app level (Redirecionando versões de assembly no nível do aplicativo) do artigo Redirecting Assembly Versions (Redirecionando versões de assembly).In some cases, Visual Studio may modify the output configuration file; for more information, see the Redirecting assembly versions at the app level section of the Redirecting Assembly Versions article.

  • Aplicativo hospedado no ASP.NET.ASP.NET-hosted app.

    Para obter mais informações sobre arquivos de configuração do ASP.NET, consulte definições de configuração do ASP.net.For more information about ASP.NET configuration files, see ASP.NET Configuration Settings.

  • Aplicativo hospedado no Internet Explorer.Internet Explorer-hosted app.

    Se um aplicativo hospedado no Internet Explorer possuir um arquivo de configuração, o local desse arquivo será especificado em uma marca <link> com a seguinte sintaxe:If an app hosted in Internet Explorer has a configuration file, the location of this file is specified in a <link> tag with the following syntax:

    <link rel="ConfigurationFileName" href="location"><link rel="ConfigurationFileName" href="location">

    Nessa marca, location é uma URL para o arquivo de configuração.In this tag, location is a URL to the configuration file. Isso define a base do aplicativo.This sets the app base. O arquivo de configuração deve estar localizado no mesmo site que o aplicativo.The configuration file must be located on the same website as the app.

Arquivos de configuração de segurançaSecurity Configuration Files

Os arquivos de configuração de segurança contêm informações sobre a hierarquia e os conjuntos de permissões do grupo de códigos associados a um nível de política.Security configuration files contain information about the code group hierarchy and permission sets associated with a policy level. É altamente recomendável que você use a ferramenta Política de Segurança de Acesso a Códigos (Caspol.exe) para modificar a política de segurança a fim de garantir que as alterações de política não corrompam os arquivos de configuração de segurança.We strongly recommend that you use the Code Access Security Policy tool (Caspol.exe) to modify security policy to ensure that policy changes do not corrupt the security configuration files.

Observação

A partir do .NET Framework 4, os arquivos de configuração de segurança estarão presentes somente se a política de segurança tiver sido alterada.Starting with the .NET Framework 4, the security configuration files are present only if security policy has been changed.

Os arquivos de configuração de segurança estão nos seguintes locais:The security configuration files are in the following locations:

  • Arquivo de configuração de política empresarial: %runtime-install-path%\Config\Enterprisesec.configEnterprise policy configuration file: %runtime-install-path%\Config\Enterprisesec.config

  • Arquivo de configuração de política de computador: %runtime-install-path%\Config\Security.configMachine policy configuration file: %runtime-install-path%\Config\Security.config

  • Arquivo de configuração de política de usuário: %USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.configUser policy configuration file: %USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.config

Nesta seçãoIn This Section

Como: Localizar assemblies usando DEVPATHHow to: Locate Assemblies by Using DEVPATH
Descreve como direcionar o tempo de execução para usar a variável de ambiente DEVPATH ao procurar por assemblies.Describes how to direct the runtime to use the DEVPATH environment variable when searching for assemblies.

Redirecionando versões de assemblyRedirecting Assembly Versions
Descreve como especificar o local de um assembly e qual versão de um assembly será usada.Describes how to specify the location of an assembly and which version of an assembly to use.

Especificando o local de um assemblySpecifying an Assembly's Location
Descreve como especificar onde o tempo de execução deve pesquisar um assembly.Describes how to specify where the runtime should search for an assembly.

Configurando classes de criptografiaConfiguring Cryptography Classes
Descreve como mapear um nome de algoritmo para uma classe de criptografia e um identificador de objeto para um algoritmo de criptografia.Describes how to map an algorithm name to a cryptography class and an object identifier to a cryptography algorithm.

Como: Criar uma política de PublicadorHow to: Create a Publisher Policy
Descreve quando e como você deve adicionar um arquivo de política de editor para especificar as configurações de base de redirecionamento e código de assembly.Describes when and how you should add a publisher policy file to specify assembly redirection and code base settings.

Esquema de arquivos de configuraçãoConfiguration File Schema
Descreve a hierarquia de esquema de inicialização, tempo de execução, rede e outros tipos de parâmetros de configuração.Describes the schema hierarchy for startup, runtime, network, and other types of configuration settings.

Consulte tambémSee also