Archivos de configuración de la aplicación

Un archivo de configuración de aplicación es un archivo XML que se usa para controlar el enlace de ensamblados. Puede redirigir una aplicación desde una versión de un ensamblado en paralelo a otra versión del mismo ensamblado. Esto se denomina configuración por aplicación. Un archivo de configuración de aplicación solo se aplica a un manifiesto de aplicación específico y a ensamblados dependientes. Los componentes aislados compilados con un manifiesto de ISOLATIONAWARE_MANIFEST_RESOURCE_ID incrustado requieren un archivo de configuración de aplicación independiente. Los manifiestos administrados con CreateActCtx requieren un archivo de configuración de aplicación independiente.

El redireccionamiento especificado por un archivo de configuración de aplicación puede invalidar las versiones de ensamblado especificadas por los manifiestos de aplicación y los archivos de configuración del publicador. Por ejemplo, si un archivo de configuración del publicador especifica que todas las referencias a un ensamblado se redirigen de la versión 1.0.0.0 a 1.1.0.0, se puede usar un archivo de configuración de aplicación para redirigir una aplicación determinada para que use la versión 1.0.0.0. Un archivo de configuración de aplicación solo se aplica al manifiesto de aplicación especificado y a los ensamblados dependientes.

Para obtener una lista completa del esquema XML, vea Esquema de archivo de configuración de aplicaciones.

Los archivos de configuración de la aplicación tienen los elementos y atributos que se muestran en la tabla siguiente.

Elemento Atributos Requerido
configuration Yes
windows Yes
publisherPolicy Yes
apply Yes
motor en tiempo de ejecución No
assemblyBinding Yes
Sondeo No
privatePath Yes
Dependencia No
dependentAssembly Yes
assemblyIdentity
type
name
language No
processorArchitecture
version Yes
publicKeyToken No
bindingRedirect Yes
oldVersion Yes
newVersion Yes

Ubicación del archivo

Los archivos de configuración de la aplicación deben instalarse en la misma ubicación que el manifiesto de aplicación de la aplicación.

Sintaxis de los nombres de archivo

El nombre de un archivo de configuración de aplicación es el nombre del ejecutable de la aplicación seguido de .config.

Por ejemplo, un archivo de configuración de aplicación que hace referencia a Example.exe o Example.dll usaría la sintaxis del nombre de archivo que se muestra en el ejemplo siguiente. Puede omitir el campo del <identificador> de recurso si instala el archivo de configuración como un archivo independiente o si el identificador de recurso es 1.

example.exe.<identificador de> recurso.config

example.dll.<identificador de> recurso.config

Elementos

Los nombres de los elementos y atributos distinguen mayúsculas de minúsculas. Los valores de los elementos y atributos no distinguen mayúsculas de minúsculas, excepto el valor del atributo de tipo.

configuración

Elemento contenedor para los elementos windows y runtime de un archivo de configuración de aplicación. Necesario.

Windows

Incluye las partes del archivo de configuración de la aplicación que se aplican al redireccionamiento de ensamblados Win32.

Nota

El autor de una aplicación no debe incluir un archivo de configuración con un subelemento de Windows como parte de su aplicación. Esto puede permitirse si el único propósito del archivo de configuración es habilitar la funcionalidad privatePath de un elemento de sondeo . El elemento de sondeo no está disponible en sistemas anteriores a Windows Server 2008 R2 y Windows 7.

publisherPolicy

Especifica si se va a aplicar la directiva de publicador.

Este elemento tiene los atributos que se muestran en la tabla siguiente.

Atributo Descripción
apply Un valor de "sí" aplica la directiva de publicador. Esta es la configuración predeterminada. El valor "no" no aplica la directiva de publicador.

motor en tiempo de ejecución

Incluye las partes del archivo de configuración de la aplicación que se aplican al redireccionamiento de ensamblados .Net.

assemblyBinding

Incluye la información de redireccionamiento de la aplicación y el ensamblado afectados por este archivo de configuración de la aplicación. El primer subelemento de assemblyBinding debe ser un assemblyIdentity que identifique la aplicación.

A partir de Windows Server 2008 R2 y Windows 7, un elemento assemblyBinding puede incluir un subelemento de sondeo .

buscar

Un subelemento opcional de un elemento assemblyBinding que extiende la búsqueda de ensamblados en directorios adicionales. No es necesario que los directorios adicionales sean subdirectorios del directorio del ensamblado.

Nota

Este elemento no está disponible en sistemas anteriores a Windows Server 2008 R2 y Windows 7 y solo se puede usar dentro de un elemento windows .

Este elemento tiene los atributos que se muestran en la tabla siguiente.

Atributo Descripción
privatePath Especifica las rutas de acceso relativas de los subdirectorios del directorio base de la aplicación que pueden contener ensamblados. Se puede especificar un máximo de nueve rutas de acceso de subdirectorio. Delimite cada ruta de acceso del subdirectorio con un punto y coma.

Puede usar el especificador especial de puntos dobles en una ruta de acceso para indicar el directorio primario del directorio actual. No se pueden especificar más de dos niveles por encima del directorio actual mediante puntos dobles. No use puntos triples. Por ejemplo, una aplicación que usa el siguiente elemento de sondeo comprueba directorios adicionales para un ensamblado.

<probing privatePath="bin;..\bin2\subbin;bin3"/>

dependency

Elemento contenedor para al menos un elemento dependentAssembly. Cada dependentAssembly puede estar dentro exactamente de una dependencia. Este elemento no tiene atributos. Opcional.

dependentAssembly

El primer subelemento debe ser un elemento assemblyIdentity que identifique el ensamblado en paralelo que redirige el archivo de configuración de la aplicación. Un elemento dependentAssembly no tiene atributos.

assemblyIdentity

Como primer subelemento de un elemento assemblyBinding , assemblyIdentity describe e identifica de forma única una aplicación. El archivo de configuración de la aplicación redirige el enlace de esta aplicación a ensamblados en paralelo. Por ejemplo, assemblyIdentity siguiente indica que el archivo de configuración de la aplicación afecta al enlace de la aplicación mysampleApp a ensamblados en paralelo. Los ensamblados que se redirigen se identificarían en un elemento dependentAssembly.

<assemblyIdentity processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>

Como primer subelemento de un elemento dependentAssembly , assemblyIdentity describe un ensamblado en paralelo en el que depende la aplicación. El archivo de configuración de la aplicación vuelve a configurar la identidad de este ensamblado necesario. Por ejemplo, el siguiente assemblyIdentity y bindingRedirect vuelve a configurar una dependencia en Microsoft.Windows.SampleAssembly de la versión 2.0.0.0 a la versión 2.1.0.0.

<dependency>
      <dependentAssembly>
         <assemblyIdentity type="win32"
          name="Microsoft.Windows.SampleAssembly"
          processorArchitecture="x86"
          publicKeyToken="0000000000000000"/>
         <bindingRedirect oldVersion="2.0.0.0" newVersion="2.1.0.0"/>
      </dependentAssembly>
</dependency>

Tenga en cuenta que cada assemblyIdentity incluido en un elemento dependentAssembly debe coincidir exactamente con assemblyIdentity en el propio manifiesto de ensamblado del ensamblado.

El elemento assemblyIdentity tiene los atributos siguientes. No tiene subelementos.

Atributo Descripción
type El valor debe ser win32 (minúscula). Necesario.
name El atributo name identifica la aplicación afectada por el archivo de configuración de la aplicación o el ensamblado que se redirige. Use el siguiente formato para el nombre: Organization.Division.Name. Necesario. Por ejemplo: Microsoft.Windows.MysampleApp o Microsoft.Windows.MysampleAsm.
language Identifica el idioma. Opcional. Para un assemblyIdentity que hace referencia a un ensamblado, si el ensamblado es específico del lenguaje, especifique el código de lenguaje DHTML. Si el ensamblado es para uso en todo el mundo (idioma neutro), establezca el valor como "*".
processorArchitecture Especifica el procesador que ejecuta la aplicación.
version Especifica la versión de la aplicación o ensamblado. Use la sintaxis de la versión de cuatro partes: mmmm.nnnn.oooo.pppp. Necesario.
publicKeyToken Para un assemblyIdentity que hace referencia a un ensamblado, una cadena hexadecimal de 16 caracteres que representa los últimos 8 bytes del hash SHA-1 de la clave pública en la que se firma el ensamblado. La clave pública usada para firmar el catálogo debe ser de 2048 bits o superior. Necesario para todos los ensamblados en paralelo compartidos.

bindingRedirect

El elemento bindingRedirect contiene información de redireccionamiento para el enlace del ensamblado. Cada bindingRedirect debe incluirse exactamente en un elemento dependentAssembly. La sintaxis de la versión de cuatro partes de la nueva versión y la versión anterior deben especificar las mismas versiones principales y secundarias.

Este elemento tiene los atributos que se muestran en la tabla siguiente.

Atributo Descripción
oldVersion Especifica la versión del ensamblado que se va a invalidar y redirigir. Use la sintaxis de versión de cuatro partes nnnnn.nn.nn.nnnnn. Especifique un intervalo de versiones por un guión sin espacios. Por ejemplo, 2.14.3.0 o 2.14.3.0 2.16.0.0. Necesario.
newVersion Especifica la versión del ensamblado de reemplazo. Use la sintaxis de versión de cuatro partes nn.nn.nn.nnnnn.

Comentarios

Los archivos de configuración de la aplicación no especifican archivos.

Ejemplo

<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.10.0"/>
<bindingRedirect oldVersion="1.0.50.2011-1.0.60.65535" newVersion="1.0.70.0"/>