/target (Opciones del compilador de C#)
La opción del compilador /target se puede especificar de cuatro formas distintas:
/target:exe
Para crear un archivo .exe./target:library
Para crear una biblioteca de código./target:module
Para crear un módulo./target:winexe
Para crear un programa de Windows.
A menos que se especifique /target:module, /target incluye un manifiesto de ensamblado de .NET Framework en un archivo de salida. Para obtener más información, vea Ensamblados en Common Language Runtime y Atributos comunes.
El manifiesto de ensamblado se sitúa en el primer archivo de salida .exe de la compilación o bien en el primer archivo DLL si no hubiera .exe. Por ejemplo, en la siguiente línea de comandos, el manifiesto se colocará en 1.exe:
csc /out:1.exe t1.cs /out:2.netmodule t2.cs
El compilador sólo crea un manifiesto de ensamblado por compilación. En el manifiesto de ensamblado se incluye información sobre todos los archivos que intervienen en una compilación. Todos los archivos de salida, excepto los creados con /target:module, pueden contener un manifiesto de ensamblado. Cuando se producen varios archivos de salida en la línea de comandos, sólo puede crearse un manifiesto de ensamblado y éste debe ir al primer archivo de salida especificado en la línea de comandos. Independientemente de cuál sea el primer archivo de salida (/target:exe, /target:winexe, /target:library o /target:module), cualquier otro archivo de salida creado en la misma compilación debe ser un módulo (/target:module).
Si crea un ensamblado, puede indicar que todo o parte del código sea conforme a CLS mediante el atributo CLSCompliantAttribute.
// target_clscompliant.cs
[assembly:System.CLSCompliant(true)] // specify assembly compliance
[System.CLSCompliant(false)] // specify compliance for an element
public class TestClass
{
public static void Main() {}
}
Para obtener más información sobre cómo establecer mediante programación esta opción del compilador, vea OutputType.