Generar un ensamblado de varios archivos
Se pueden crear ensamblados de varios archivos mediante compiladores de la línea de comandos o Visual Studio .NET con las extensiones administradas de C++. Uno de los archivos del ensamblado debe contener el manifiesto del ensamblado. Un ensamblado que inicia una aplicación debe contener también un punto de entrada, como los métodos Main o WinMain.
Por ejemplo, suponga que hay una aplicación con dos módulos de código, Client.cs y Stringer.cs. Stringer.cs que crea el espacio de nombres myStringer
al que se hace referencia en el código de Client.cs. Client.cs contiene el método Main
, que es el punto de entrada de la aplicación. En este ejemplo, se compilan los dos módulos de código y, después, se crea un tercer archivo que contiene el manifiesto del ensamblado, que inicia la aplicación. El manifiesto del ensamblado hace referencia a los dos módulos, Client
y Stringer
.
Nota Los ensamblados de varios archivos sólo pueden tener un punto de entrada, aunque el ensamblado tenga varios módulos de código.
Existen varias razones para crear un ensamblado de varios archivos:
Para combinar módulos escritos en lenguajes distintos. Esta es la razón más frecuente para crear ensamblados de varios archivos.
Para optimizar la descarga de una aplicación mediante la colocación de los tipos que se usan poco en un módulo que sólo se descarga cuando se necesitan.
Nota Si va a crear aplicaciones que se descargarán mediante la etiqueta <object> con Microsoft Internet Explorer, es importante que cree ensamblados de varios archivos. En este caso, se crea un archivo aparte de los módulos de código, que contiene sólo el manifiesto del ensamblado. Internet Explorer descarga primero el manifiesto del ensamblado y, a continuación, crea subprocesos de trabajo para descargar los módulos o ensamblados adicionales necesarios. Mientras se está descargando el archivo que contiene el manifiesto del ensamblado, Internet Explorer no responderá a los datos proporcionados por el usuario. Cuanto más pequeño sea el archivo que contiene el manifiesto, menos tiempo estará Internet Explorer sin responder al usuario.
Para combinar módulos de código escritos por varios programadores. Si bien cada programador puede compilar cada módulo de código en un ensamblado, esto puede hacer que se expongan públicamente algunos tipos que no se exponen si todos los módulos se ubican en un ensamblado de varios archivos.
Una vez que se ha creado el ensamblado, se puede firmar el archivo que contiene el manifiesto (y, por lo tanto el ensamblado) o se puede dar al archivo (y al ensamblado) un nombre seguro y colocarlo en la caché de ensamblados global.
Para crear un ensamblado de varios archivos
Compile en módulos de código todos los archivos que contengan espacios de nombres a los que hacen referencia otros módulos del ensamblado. La extensión predeterminada de los módulos de código es .netmodule. Por ejemplo, si un archivo denominado
Stringer
crea un espacio de nombres denominadomyStringer
al que se hace referencia en el código del archivo Client,Stringer
se debería compilar primero en un módulo de código.Compile los módulos restantes, usando las opciones de compilador necesarias para indicar los otros módulos a los que hace referencia el código.
Use la herramienta Assembly Linker (Al.exe) para crear el archivo de salida que contiene el manifiesto del ensamblado. Este archivo contiene información de referencia de todos los módulos o recursos que forman parte del ensamblado. El manifiesto puede actuar como archivo ejecutable de la aplicación.
Nota El IDE de Visual Studio .NET para C# y Visual Basic sólo se puede usar para crear ensamblados de un único archivo. Si desea crear ensamblados de varios archivos, debe usar los compiladores de la línea de comandos o Visual Studio .NET con las extensiones administradas de C++.
En la sección siguiente se ofrece un ejemplo de ensamblado de varios archivos que ilustra estos tres pasos.