/target(C# 컴파일러 옵션)
/target 컴파일러 옵션은 다음 네 가지 형태 중 하나를 사용하여 지정할 수 있습니다.
/target:appcontainerexe
.Exe 파일을 만들려면 Windows 스토어 응용 프로그램./target:exe
.exe 파일을 만듭니다./target:library
코드 라이브러리를 만듭니다./target:module
모듈을 만듭니다./target:winexe
Windows 프로그램을 만듭니다./target:winmdobj
중간.winmdobj 파일을 만들 수 있습니다.
//target:module을 지정하지 않으면 /target이 .NET Framework 어셈블리 매니페스트를 출력 파일에 저장합니다.자세한 내용은 공용 언어 런타임의 어셈블리 및 공통 특성을 참조하십시오.
어셈블리 매니페스트는 컴파일에서 첫 번째 .exe 출력 파일에 저장되거나 .exe 출력 파일이 없는 경우 첫 번째 DLL에 저장됩니다.예를 들어, 다음 명령줄에서 매니페스트는 1.exe에 저장됩니다.
csc /out:1.exe t1.cs /out:2.netmodule t2.cs
컴파일러에서는 컴파일마다 하나의 어셈블리 매니페스트만 만듭니다.컴파일할 때 모든 파일에 대한 정보는 어셈블리 매니페스트에 저장됩니다./target:module을 사용하여 만든 출력 파일을 제외한 모든 출력 파일은 어셈블리 매니페스트를 가질 수 있습니다.명령줄에서 여러 출력 파일을 생성하는 경우 하나의 어셈블리 매니페스트만 만들 수 있으며 명령줄에서 지정한 첫 번째 출력 파일에 이를 저장해야 합니다.첫 번째 출력 파일이 어떤 것이든(/target:exe, /target:winexe, /target:library 또는 /target:module) 동일한 컴파일에서 생성된 다른 출력 파일은 모듈이어야 합니다(/target:module).
어셈블리를 만드는 경우 코드의 전체 또는 코드 일부가 CLSCompliantAttribute 특성이 있는 CLS 규격이 되도록 지정할 수 있습니다.
// 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() {}
}
이 컴파일러 옵션을 프로그래밍 방식으로 설정하는 방법은 OutputType을 참조하십시오.