Herramienta Assembly Linker (Al.exe)
Actualización: noviembre 2007
Assembly Linker genera un archivo con un manifiesto de ensamblado a partir de uno o más archivos que son módulos o archivos de recursos. Un módulo es un archivo en lenguaje intermedio de Microsoft (MSIL) que no tiene un manifiesto de ensamblado.
Nota
Para evitar la virtualización en un equipo de Windows Vista, el ensamblado debe incluir un manifiesto de win32 que especifique el nivel de ejecución solicitado. Cuando se utiliza al.exe directamente desde la línea de comandos, puede incrustar el manifiesto en un archivo de recursos de win32 o utilizar mt.exe para anexar el manifiesto en una fase posterior del proceso de compilación. En Visual Studio 2008, los compiladores de Visual Basic y de C# incrustan automáticamente un manifiesto de win32 en el ensamblado. Para obtener más información, vea /win32manifest (Importar un archivo del manifiesto de Win32 personalizado) (Opciones del compilador de C#).
al sources options
Parámetros
Puede especificar una o varias de las siguientes opciones de sources.
Código fuente |
Descripción |
---|---|
file[,target] |
Copia el contenido de file (un módulo) en el nombre de archivo especificado por target. Después de la copia, Al.exe compila target en un ensamblado. |
/embed[resource]:file[,name[,private]] |
Incrusta el recurso especificado en file en la imagen que contiene el manifiesto del ensamblado; Al.exe copia el contenido de file en la imagen ejecutable portable (PE). El parámetro name es un identificador interno del recurso. De forma predeterminada, los recursos son públicos en el ensamblado (visibles para otros ensamblados). Si se especifica private, el recurso no es visible para otros ensamblados. Si file es un archivo de recursos de .NET Framework creado, por ejemplo, por la herramienta Generador de archivos de recursos (Resgen.exe) o en el entorno de desarrollo, se puede tener acceso al mismo con miembros del System.Resources. Para obtener más información, vea ResourceManager. Para todos los demás recursos, utilice los métodos GetManifestResource* de Assembly para obtener acceso al recurso en tiempo de ejecución. Si sólo se pasan archivos de recursos a Al.exe, el archivo de resultados es un ensamblado satélite de recursos. |
/link[resource]:file[,name[,target[,private]]] |
Vincula un archivo de recursos a un ensamblado. El recurso especificado en file pasa a formar parte del ensamblado; el archivo no se copia. El parámetro file puede estar en cualquier formato de archivo. Por ejemplo, puede especificar un archivo DLL nativo como parámetro file. Así, el archivo DLL nativo formará parte del ensamblado, de forma que se puede instalar en la caché de ensamblados global y se puede obtener acceso al mismo a partir de código administrado del ensamblado. También puede hacerlo mediante la opción del compilador /linkresource. Para obtener más información, vea /linkresource (Vincular a recursos de .NET Framework) (Opciones del compilador de C#). El parámetro name es un identificador interno del recurso. El parámetro targetespecifica una ruta de acceso y el nombre de archivo en el que Al.exe copia el archivo especificado en file. Después de la copia, Al.exe compila target en un ensamblado. De forma predeterminada, los recursos son públicos en el ensamblado (visibles para otros ensamblados). Si se especifica private, el recurso no es visible para otros ensamblados. Si file es un archivo de recursos de .NET Framework creado, por ejemplo, por la herramienta Generador de archivos de recursos (Resgen.exe), o en el entorno de desarrollo, se puede tener acceso al mismo con miembros del espacio de nombres System.Resources. Para obtener más información, vea ResourceManager. Para todos los demás recursos, utilice los métodos GetManifestResource* de la clase Assembly para obtener acceso al recurso en tiempo de ejecución. Si sólo se pasan archivos de recursos a Al.exe, el archivo de resultados es un ensamblado satélite de recursos. |
Se pueden especificar las siguientes options; debe especificar /out.
Opción |
Descripción |
---|---|
/algid:id |
Especifica un algoritmo para generar un valor de clave hash para todos los archivos en un ensamblado de múltiples archivos, exceptuando el archivo que contiene el manifiesto del ensamblado. El algoritmo predeterminado es CALG_SHA1. Vea ALG_ID en la documentación de Platform SDK para otros algoritmos. En la primera versión de .NET Framework, sólo son válidos los algoritmos CALG_SHA1 y CALG_MD5. Los valores de clave hash se almacenan en la tabla de archivos del manifiesto del ensamblado. Durante la instalación y la carga, se cotejan los valores de clave hash de los archivos del ensamblado. También puede especificar esta opción como un atributo personalizado (AssemblyAlgorithmIdAttribute) en el código fuente de cualquier módulo. |
/base[address]:addr |
Especifica la dirección donde se cargará un archivo DLL en el equipo del usuario en tiempo de ejecución. Las aplicaciones se cargan con mayor rapidez si se especifica la dirección base de los archivos DLL, en lugar de dejar que el sistema operativo cambie la ubicación de los mismos en el espacio de procesos. |
/bugreport:filename |
Crea un archivo (filename) que contiene información de errores. |
/comp[any]:text |
Especifica una cadena para el campo Company del ensamblado. Si text contiene algún espacio, hay que escribir la cadena entre comillas dobles (" "). Esta cadena es un atributo personalizado en el ensamblado y está disponible para ver con el mecanismo de reflexión. Si no se especifica /win32res, text aparece en el Explorador de Microsoft Windows como la propiedad Company para el archivo. Si se especifica /win32res, la información sobre la compañía del archivo de recursos especificado aparece como la propiedad Company en el Explorador de Windows. Si el texto es una cadena vacía (""), el recurso Company de Win32 aparece como un espacio. Si se especifica /win32res, /company, no producirá ningún efecto en la información de recursos de Win32. También puede especificar esta opción como un atributo personalizado (AssemblyCompanyAttribute) en el código fuente de cualquier módulo MSIL. |
/config[uration]:text |
Especifica una cadena para el campo Configuration del ensamblado. Si text contiene algún espacio, hay que escribir la cadena entre comillas dobles (" "). Esta cadena es un atributo personalizado en el ensamblado y está disponible para ver con el mecanismo de reflexión. Si el texto es una cadena vacía, el recurso Configuration de Win32 aparece como un espacio. También puede especificar esta opción como un atributo personalizado (AssemblyConfigurationAttribute) en el código fuente de cualquier módulo MSIL. |
/copy[right]:text |
Especifica una cadena para el campo Copyright del ensamblado. Si text contiene algún espacio, hay que escribir la cadena entre comillas dobles (" "). Esta cadena es un atributo personalizado en el ensamblado y está disponible para ver con el mecanismo de reflexión. Si no se especifica /win32res, /copyright aparece en el Explorador de Windows como el recurso Copyright de Win32. Si el texto es una cadena vacía, el recurso Copyright de Win32 aparece como un espacio. Si se especifica /win32res, /copyright, no producirá ningún efecto en la información de recursos de Win32. También puede especificar esta opción como un atributo personalizado (AssemblyCopyrightAttribute) en el código fuente de cualquier módulo MSIL. |
/c[ulture]:text |
Especifica la cadena de referencia cultural que se ha de asociar al ensamblado. Los valores válidos de referencias culturales son los definidos por el documento 1766 titulado "Tags for the Identification of Languages" de Requests for Comments (RFC) en Internet. Si text contiene algún espacio, hay que escribir la cadena entre comillas dobles (" "). No existe ninguna cadena de referencia cultural predeterminada. Esta cadena está disponible para ver con el mecanismo de reflexión. Para obtener información acerca de las cadenas text válidas, vea el objeto CultureInfo. También puede especificar esta opción como un atributo personalizado (AssemblyCultureAttribute) en el código fuente de cualquier módulo MSIL. |
/delay[sign][+|-] |
Especifica si el ensamblado estará firmado total o parcialmente. Utilice /delaysign- para firmar completamente un ensamblado. Utilice /delaysign+ si desea incluir sólo la clave pública en el ensamblado. Cuando se solicita un ensamblado totalmente firmado, Al.exe genera un valor de clave hash para el archivo que contiene el manifiesto (metadatos del ensamblado) y firma dicho valor mediante la clave privada. La firma digital resultante se almacena en el archivo que contiene el manifiesto. Cuando se retrasa la firma de un ensamblado, Al.exe no calcula ni almacena la firma, sino que reserva espacio en el archivo para que la firma se pueda agregar más tarde. El tipo predeterminado es /delaysign-. La opción /delaysign no tiene ningún efecto a menos que se utilice con /keyfile o /keyname. Por ejemplo, si se usa /delaysign+, los comprobadores podrán colocar el ensamblado en la caché global. Después de la evaluación, se puede firmar completamente el ensamblado incluyendo la clave privada en el mismo.
Nota:
Antes de utilizar Herramienta Caché de ensamblados global (Gacutil.exe) para colocar un ensamblado con retraso de firma en la caché global, utilice Herramienta de nombre seguro (Sn.exe) con el fin de registrar el ensamblado para omitir la comprobación. Por ejemplo, Sn.exe –Vr delaySignedAssembly. Sólo debe utilizarse para el desarrollo.
También puede especificar esta opción como un atributo personalizado (AssemblyDelaySignAttribute) en el código fuente de cualquier módulo MSIL. |
/descr[iption]:text |
Especifica una cadena para el campo Description del ensamblado. Si text contiene algún espacio, hay que escribir la cadena entre comillas dobles (" "). Esta cadena es un atributo personalizado en el ensamblado y está disponible para ver con el mecanismo de reflexión. Si no se especifica /win32res, /description aparece en el Explorador de Windows como el recurso Comments de Win32. Si el texto es una cadena vacía, el recurso Comments de Win32 aparece como un espacio. Si se especifica /win32res, /description, no producirá ningún efecto en la información de recursos de Win32. También puede especificar esta opción como un atributo personalizado (Description) en el código fuente de cualquier módulo MSIL. |
/e[vidence]:file |
Incrusta file en el ensamblado con el nombre de recurso de Security.Evidence. No se puede utilizar Security.Evidence para los recursos regulares. |
/fileversion:version |
Especifica una cadena para el campo File Version del ensamblado. Esta cadena es un atributo personalizado en el ensamblado y está disponible para ver con el mecanismo de reflexión. Si no se especifica /win32res, /fileversion se utilizará como el recurso File Version de Win32. Si no se especifica /fileversion, el recurso File Version de Win32 será llenado por el recurso Assembly Version de Win32. Si se especifica /win32res, /fileversion no tiene ningún efecto en el recurso de Win32. También puede especificar esta opción como un atributo personalizado (AssemblyFileVersionAttribute) en el código fuente de cualquier módulo MSIL. |
/flags:flags |
Especifica un valor para el campo Flags del ensamblado. Valores posibles de flags:
También puede especificar esta opción como un atributo personalizado (AssemblyFlagsAttribute) en el código fuente de cualquier módulo MSIL. |
/fullpaths |
Hace que Al.exe use la ruta de acceso absoluta de los archivos que se enumeran en un mensaje de error. |
/help |
Muestra la sintaxis de comandos y opciones para la herramienta. |
/keyf[ile]:filename |
Especifica un archivo (filename) que contiene un par de claves o simplemente una clave pública para firmar un ensamblado. El compilador inserta la clave pública en el manifiesto del ensamblado y firma después el ensamblado final con la clave privada. Vea la herramienta Nombre seguro (Sn.exe) para obtener información acerca de la generación de archivos de claves y la instalación de pares de claves en contenedores de claves. Si se está utilizando la opción de firma retardada, este archivo tendrá normalmente la clave pública pero no la clave privada. La información sobre la clave pública (del par de claves) aparece en el campo .publickey del ensamblado. También puede especificar esta opción como un atributo personalizado (AssemblyKeyFileAttribute) en el código fuente de cualquier módulo MSIL. Si se especifican /keyfile y /keyname (mediante una opción de línea de comandos o mediante un atributo personalizado) en la misma compilación, Al.exe probará en primer lugar el contenedor especificado con /keyname. Si esta operación se realiza correctamente, el ensamblado se firma con la información del contenedor de claves. Si Al.exe no encuentra el contenedor, probará el archivo especificado en /keyfile. Si esta operación se realiza correctamente, el ensamblado se firma con la información del archivo de claves y la información sobre claves se instalará en el contenedor de claves (similar a la opción -i de Sn.exe), por lo que en la siguiente compilación, la opción /keyname será válida. |
/keyn[ame]:text |
Especifica un contenedor que contiene un par de claves. De este modo, el ensamblado se firmará (recibirá un nombre seguro) mediante la inserción de una clave pública en el manifiesto del ensamblado. Al.exe firmará después el ensamblado final con la clave privada. Use Sn.exe para generar un par de claves. La información sobre claves aparece en el campo .publickey del ensamblado. Hay que colocar text entre comillas dobles (" ") si hay un espacio incrustado. También puede especificar esta opción como un atributo personalizado (AssemblyKeyNameAttribute) en el código fuente de cualquier módulo MSIL. |
/main:method |
Especifica el nombre completo (class.method) del método que se utilizará como punto de entrada al convertir un módulo en un archivo ejecutable. |
/nologo |
Suprime la pancarta, o el logotipo, que se muestra en la línea de comandos cuando se llama a Al.exe. |
/out:filename |
Especifica el nombre del archivo generado por Al.exe. Esta opción es necesaria. |
/platform:text |
Limita la ejecución del código a una plataforma, ya sea x86, Itanium, x64 o anycpu (opción predeterminada). |
/prod[uct]:text |
Especifica una cadena para el campo Product del ensamblado. Si text contiene algún espacio, hay que escribir la cadena entre comillas dobles (" "). Esta cadena es un atributo personalizado en el ensamblado y está disponible para ver con el mecanismo de reflexión. Si no se especifica /win32res, /product aparece en el Explorador de Windows como el recurso Product Name de Win32. Si el texto es una cadena vacía, el recurso Product Name de Win32 aparece como un espacio. Si se especifica /win32res, /product, no producirá ningún efecto en la información de recursos de Win32. También puede especificar esta opción como un atributo personalizado (AssemblyProductAttribute) en el código fuente de cualquier módulo MSIL. |
/productv[ersion]:text |
Especifica una cadena para el campo Product Version del ensamblado. Si text contiene algún espacio, hay que escribir la cadena entre comillas dobles (" "). Esta cadena es un atributo personalizado en el ensamblado y está disponible para ver con el mecanismo de reflexión. Si no se especifica /win32res, /productversion se utilizará como el recurso Product Version de Win32. Si no se especifica /productversion, el recurso Product Version de Win32 será llenado por el recurso File Version de Win32. Si se especifica /win32res, /productversion, no producirá ningún efecto en la información de recursos de Win32. También puede especificar esta opción como un atributo personalizado (AssemblyInformationalVersionAttribute) en el código fuente de cualquier módulo MSIL. |
/t[arget]:lib[rary] | exe | win[exe] |
Especifica el formato de archivo del archivo de resultados: lib[rary] (biblioteca de código), exe (aplicación de consola) o win[exe] (aplicación basada en Windows). El valor predeterminado es lib[rary]. |
/template:filename |
Especifica el ensamblado, filename, que se utilizará para heredar todos los metadatos del ensamblado, salvo el campo correspondiente a la referencia cultural. Los ensamblados creados con /template serán ensamblados satélite. |
/title:text |
Especifica una cadena para el campo Title del ensamblado. Si text contiene algún espacio, hay que escribir la cadena entre comillas dobles (" "). Esta cadena es un atributo personalizado en el ensamblado y está disponible para ver con el mecanismo de reflexión. Si no se especifica /win32res, /title aparece en el Explorador de Windows como el recurso Description de Win32, que es utilizado por el shell como nombre descriptivo de una aplicación. También se muestra en el submenú Abrir con del menú de acceso directo de un tipo de archivo para el que existen varias aplicaciones compatibles. Si el texto es una cadena vacía, el recurso Description de Win32 aparece como un espacio. Si se especifica /win32res, /title, no producirá ningún efecto en la información de recursos de Win32. También puede especificar esta opción como un atributo personalizado (AssemblyTitleAttribute) en el código fuente de cualquier módulo MSIL. |
/trade[mark]:text |
Especifica una cadena para el campo Trademark del ensamblado. Si text contiene algún espacio, hay que escribir la cadena entre comillas dobles (" "). Esta cadena es un atributo personalizado en el ensamblado y está disponible para ver con el mecanismo de reflexión. Si no se especifica /win32res, /trademark aparece en el Explorador de Windows como el recurso Trademark de Win32. Si el texto es una cadena vacía, el recurso Trademark de Win32 aparece como un espacio. Si se especifica /win32res, /trademark, no producirá ningún efecto en la información de recursos de Win32. También puede especificar esta opción como un atributo personalizado (AssemblyTrademarkAttribute) en el código fuente de cualquier módulo MSIL. |
/v[ersion]:version |
Especifica la información de versión de este ensamblado. El formato de la cadena de la versión es major.minor.build.revision. El valor predeterminado es 0. Si especifica /version, debe especificar major. Si especifica major y minor, puede especificar un asterisco (*) para build. Esto hará que build sea igual al número de días transcurridos desde el 1 de enero de 2000, hora local, y que revision sea igual al número de segundos transcurridos desde la medianoche del 1 de enero de 2000, hora local, dividido por 2. Si especifica major, minor y build, puede especificar un asterisco para revision. Esto hará que revision sea igual al número de segundos transcurridos desde la medianoche del 1 de enero de 2000, hora local, dividido por 2. En resumen, las cadenas de versión válidas son la siguientes: X X.X X.X.* X.X.X X.X.X.* X.X.X.X donde X es una constante corta sin signo, exceptuando 65535 (0-65534). Si no se especifica /win32res, /version se utilizará como el recurso Assembly Version de Win32. Si no especifica /win32res, /productversion y /fileversion, se utilizará /version para los recursos Assembly Version, File Version y Product Version de Win32. Si se especifica /win32res, /version, no producirá ningún efecto en la información de recursos de Win32. También puede especificar esta opción como un atributo personalizado (AssemblyVersionAttribute) en el código fuente de cualquier módulo MSIL. |
/win32icon:filename |
Inserta un archivo .ico en el ensamblado. El archivo .ico proporciona al archivo de resultados la apariencia deseada en el Explorador de Windows. |
/win32res:filename |
Inserta un recurso de Win32 (archivo .res) en el archivo de resultados. Se puede crear un archivo de recursos de Win32 con el compilador de recursos. El compilador de recursos se invoca cuando se compila un programa de Visual C++; se crea un archivo .res a partir del archivo .rc. |
@filename |
Especifica un archivo de respuesta que contiene los comandos de Al.exe. Los comandos del archivo de respuesta pueden aparecer uno por línea o en la misma línea, separados por uno o más espacios. |
/? |
Muestra la sintaxis de comandos y opciones para la herramienta. |
Comentarios
Todos los compiladores de Visual Studio crean ensamblados. No obstante, si se tienen uno o más módulos (metadatos sin un manifiesto), se puede utilizar Al.exe para crear un ensamblado con el manifiesto en un archivo independiente.
Para instalar ensamblados en la caché, quitar ensamblados de la caché, o enumerar el contenido de la caché, se ha de utilizar la herramienta Caché de ensamblados global (Gacutil.exe).
Ejemplo
El comando siguiente crea un archivo ejecutable t2a.exe con un ensamblado a partir del módulo t2.netmodule. El punto de entrada es el método Main de MyClass.
al t2.netmodule /target:exe /out:t2a.exe /main:MyClass.Main
Vea también
Referencia
Herramientas de .NET Framework
Errores y advertencias de la herramienta Al.exe
Herramienta de nombre seguro (Sn.exe)
Herramienta Caché de ensamblados global (Gacutil.exe)