Csc 工作Csc task

包裝 csc.exe,並產生可執行檔 (.exe 檔案)、動態連結程式庫 ( .dll 檔案) 或程式碼模組 (.netmodule 檔案)。Wraps csc.exe, and produces executables (.exe files), dynamic-link libraries (.dll files), or code modules (.netmodule files). 如需 csc.exe 的詳細資訊,請參閱 C# 編譯器選項For more information about csc.exe, see C# compiler options.

參數Parameters

下表說明 Csc 工作的參數。The following table describes the parameters of the Csc task.

參數Parameter 說明Description
AdditionalLibPaths 選擇性的 String[] 參數。Optional String[] parameter.

指定要搜尋參考的其他目錄。Specifies additional directories to search for references. 如需詳細資訊,請參閱 -lib (C# 編譯器選項)For more information, see -lib (C# compiler options).
AddModules 選擇性的 String 參數。Optional String parameter.

指定要成為組件一部分的一個或多個模組。Specifies one or more modules to be part of the assembly. 如需詳細資訊,請參閱 -addmodule (C# 編譯器選項)For more information, see -addmodule (C# compiler options).
AllowUnsafeBlocks 選擇性的 Boolean 參數。Optional Boolean parameter.

如果是 true,即會編譯使用 unsafe 關鍵字的程式碼。If true, compiles code that uses the unsafe keyword. 如需詳細資訊,請參閱 -unsafe (C# 編譯器選項)For more information, see -unsafe (C# compiler options).
ApplicationConfiguration 選擇性的 String 參數。Optional String parameter.

指定包含組件繫結設定的應用程式組態檔。Specifies the application configuration file containing the assembly binding settings.
BaseAddress 選擇性的 String 參數。Optional String parameter.

指定載入 DLL 時慣用的基底位址。Specifies the preferred base address at which to load a DLL. DLL 的預設基底位址是由 .NET Framework Common Language Runtime 所設定。The default base address for a DLL is set by the .NET Framework common language runtime. 如需詳細資訊,請參閱 -baseaddress (C# 編譯器選項)For more information, see -baseaddress (C# compiler options).
CheckForOverflowUnderflow 選擇性的 Boolean 參數。Optional Boolean parameter.

指定超出資料類型範圍的整數算術,是否會導致在執行階段發生例外狀況。Specifies whether integer arithmetic that overflows the bounds of the data type causes an exception at run time. 如需詳細資訊,請參閱 -checked (C# 編譯器選項)For more information, see -checked (C# compiler options).
CodePage 選擇性的 Int32 參數。Optional Int32 parameter.

指定編譯過程中所有原始程式碼檔使用的字碼頁。Specifies the code page to use for all source code files in the compilation. 如需詳細資訊,請參閱 -codepage (C# 編譯器選項)For more information, see -codepage (C# compiler options).
DebugType 選擇性的 String 參數。Optional String parameter.

指定偵錯類型。Specifies the debug type. DebugType 可以是 fullpdbonlyDebugType can be full or pdbonly. 預設值是 full,會將偵錯工具附加至執行中的程式。The default is full, which enables a debugger to be attached to a running program. 指定 pdbonly,讓原始程式碼在偵錯工具中啟動程式時進行偵錯,但只有在將執行中的程式附加到偵錯工具時,才會顯示組譯工具。Specifying pdbonly enables source code debugging when the program is started in the debugger, but only displays assembler when the running program is attached to the debugger.

此參數會覆寫 EmitDebugInformation 參數。This parameter overrides the EmitDebugInformation parameter.

如需詳細資訊,請參閱 -debug (C# 編譯器選項)For more information, see -debug (C# compiler options).
DefineConstants 選擇性的 String 參數。Optional String parameter.

定義前置處理器符號。Defines preprocessor symbols. 如需詳細資訊,請參閱 -define (C# 編譯器選項)For more information, see -define (C# compiler options).
DelaySign 選擇性的 Boolean 參數。Optional Boolean parameter.

如果是 true,則表示您只想將公開金鑰放置於組件中。If true, specifies that you only want to place the public key in the assembly. 如果false為,則指定您想要完整簽署的元件If false, specifies that you want a fully signed assembly

除非與 KeyFileKeyContainer 參數搭配使用,否則此參數沒有任何作用。This parameter has no effect unless used with either the KeyFile or KeyContainer parameter.

如需詳細資訊,請參閱 -delaysign (C# 編譯器選項)For more information, see -delaysign (C# compiler options).
Deterministic 選擇性的 Boolean 參數。Optional Boolean parameter.

若為 true,可讓編譯器輸出在輸入相同時編譯之間二進位內容相同的組件。If true, causes the compiler to output an assembly whose binary content is identical across compilations if inputs are identical.

如需詳細資訊,請參閱 -deterministic (C# 編譯器選項)For more information, see -deterministic (C# Compiler options).
DisabledWarnings 選擇性的 String 參數。Optional String parameter.

指定要停用的警告清單。Specifies the list of warnings to be disabled. 如需詳細資訊,請參閱 -nowarn (C# 編譯器選項)For more information, see -nowarn (C# compiler options).
DocumentationFile 選擇性的 String 參數。Optional String parameter.

將文件註解處理成 XML 檔案。Processes documentation comments to an XML file. 如需詳細資訊,請參閱 -doc (C# 編譯器選項)For more information, see -doc (C# compiler options).
EmitDebugInformation 選擇性的 Boolean 參數。Optional Boolean parameter.

如果是 true,工作就會產生偵錯資訊,並將其放在程式資料庫 (.pdb) 檔案中。If true, the task generates debugging information and places it in a program database (.pdb) file. 如果是 false,工作就不會發出任何偵錯資訊。If false, the task emits no debug information. 預設為 falseDefault is false. 如需詳細資訊,請參閱 -debug (C# 編譯器選項)For more information, see -debug (C# compiler options).
ErrorReport 選擇性的 String 參數。Optional String parameter.

提供將 C# 內部錯誤回報給 Microsoft 的便利方式。Provides a convenient way to report a C# internal error to Microsoft. 此參數可以具有 promptsendnone 的值。This parameter can have a value of prompt, send, or none. 如果將此參數設為 prompt,您將會在編譯器內部錯誤發生時收到提示。If the parameter is set to prompt, you will receive a prompt when an internal compiler error occurs. 此提示可讓您以電子方式將錯誤報告傳送給 Microsoft。The prompt lets you send a bug report electronically to Microsoft. 如果將此參數設為 send,就會自動傳送錯誤報告。If the parameter is set to send, a bug report is sent automatically. 如果將此參數設為 none,則只會在編譯器的文字輸出中報告錯誤。If the parameter is set to none, the error is reported only in the text output of the compiler. 預設為 noneDefault is none. 如需詳細資訊,請參閱 -errorreport (C# 編譯器選項)For more information, see -errorreport (C# compiler options).
FileAlignment 選擇性的 Int32 參數。Optional Int32 parameter.

指定輸出檔案中區段的大小。Specifies the size of sections in the output file. 如需詳細資訊,請參閱 -filealign (C# 編譯器選項)For more information, see -filealign (C# compiler options).
GenerateFullPaths 選擇性的 Boolean 參數。Optional Boolean parameter.

如果是 true,即會在編譯器輸出中指定檔案的絕對路徑。If true, specifies the absolute path to the file in the compiler output. 如果是 false,則會指定檔案的名稱。If false, specifies the name of the file. 預設為 falseDefault is false. 如需詳細資訊,請參閱 -fullpaths (C# 編譯器選項)For more information, see -fullpaths (C# compiler options).
KeyContainer 選擇性的 String 參數。Optional String parameter.

指定密碼編譯金鑰容器的名稱。Specifies the name of the cryptographic key container. 如需詳細資訊,請參閱 -keycontainer (C# 編譯器選項)For more information, see -keycontainer (C# compiler options).
KeyFile 選擇性的 String 參數。Optional String parameter.

指定包含密碼編譯金鑰的檔名。Specifies the file name containing the cryptographic key. 如需詳細資訊,請參閱 -keyfile (C# 編譯器選項)For more information, see -keyfile (C# compiler options).
LangVersion 選擇性的 String 參數。Optional String parameter.

指定要使用的語言版本。Specifies the version of the language to use. 如需詳細資訊,請參閱 -langversion (C# 編譯器選項)For more information, see -langversion (C# compiler options).
LinkResources 選擇性的 ITaskItem[] 參數。Optional ITaskItem[] parameter.

在輸出檔中建立 .NET Framework 資源的連結;不要將資源檔放置於輸出檔中。Creates a link to a .NET Framework resource in the output file; the resource file is not placed in the output file.

傳遞到此參數的項目可以具備名為 LogicalNameAccess 的選擇性中繼資料項目。Items passed into this parameter can have optional metadata entries named LogicalName and Access. LogicalName 會對應至 /linkresource 參數 (Switch) 的 identifier 參數 (Parameter),而 Access 會對應至 accessibility-modifier 參數 (Parameter)。LogicalName corresponds to the identifier parameter of the /linkresource switch, and Access corresponds to accessibility-modifier parameter. 如需詳細資訊,請參閱 -linkresource (C# 編譯器選項)For more information, see -linkresource (C# compiler options).
MainEntryPoint 選擇性的 String 參數。Optional String parameter.

指定 Main 方法的位置。Specifies the location of the Main method. 如需詳細資訊,請參閱 -main (C# 編譯器選項)For more information, see -main (C# compiler options).
ModuleAssemblyName 選擇性的 String 參數。Optional String parameter.

指定將包含此模組的組件名稱。Specifies the name of the assembly that this module will be a part of.
NoConfig 選擇性的 Boolean 參數。Optional Boolean parameter.

若為 true,即會指示編譯器不要使用 csc.rsp 檔案進行編譯。If true, tells the compiler not to compile with the csc.rsp file. 如需詳細資訊,請參閱 -noconfig (C# 編譯器選項)For more information, see -noconfig (C# compiler options).
NoLogo 選擇性的 Boolean 參數。Optional Boolean parameter.

如果是 true,即會隱藏顯示編譯器橫幅資訊。If true, suppresses display of compiler banner information. 如需詳細資訊,請參閱 -nologo (C# 編譯器選項)For more information, see -nologo (C# compiler options).
NoStandardLib 選擇性的 Boolean 參數。Optional Boolean parameter.

如果是 true,即會防止匯入 mscorlib.dll,此檔案會定義整個系統命名空間。If true, prevents the import of mscorlib.dll, which defines the entire System namespace. 如果您想要定義或建立自己的系統命名空間和物件,請使用此參數。Use this parameter if you want to define or create your own System namespace and objects. 如需詳細資訊,請參閱 -nostdlib (C# 編譯器選項)For more information, see -nostdlib (C# compiler options).
NoWin32Manifest 選擇性的 Boolean 參數。Optional Boolean parameter.

如果是 true,就不會包含預設的 Win32 資訊清單。If true, do not include the default Win32 manifest.
Optimize 選擇性的 Boolean 參數。Optional Boolean parameter.

如果是 true,即會啟用最佳化。If true, enables optimizations. 如果是 false,則會停用最佳化。If false, disables optimizations. 如需詳細資訊,請參閱 -optimize (C# 編譯器選項)For more information, see -optimize (C# compiler options).
OutputAssembly 選擇性的 String 輸出參數。Optional String output parameter.

指定輸出檔案的名稱。Specifies the name of the output file. 如需詳細資訊,請參閱 -out (C# 編譯器選項)For more information, see -out (C# compiler options).
OutputRefAssembly 選擇性的 String 參數。Optional String parameter.

指定輸出參考組件檔的名稱。Specifies the name of the output reference assembly file. 如需詳細資訊,請參閱 -refout (C# 編譯器選項)For more information, see -refout (C# compiler options).
PdbFile 選擇性的 String 參數。Optional String parameter.

指定偵錯資訊檔案名稱。Specifies the debug information file name. 預設名稱是副檔名為 .pdb 的輸出檔案名稱。The default name is the output file name with a .pdb extension.
Platform 選擇性的 String 參數。Optional String parameter.

指定輸出檔設為目標的處理器平台。Specifies the processor platform to be targeted by the output file. 此參數可以具有 x86x64anycpu 的值。This parameter can have a value of x86, x64, or anycpu. 預設為 anycpuDefault is anycpu. 如需詳細資訊,請參閱 -platform (C# 編譯器選項)For more information, see -platform (C# compiler options).
References 選擇性的 ITaskItem[] 參數。Optional ITaskItem[] parameter.

導致工作將公用類型資訊從指定的項目匯入目前的專案。Causes the task to import public type information from the specified items into the current project. 如需詳細資訊,請參閱 -reference (C# 編譯器選項)For more information, see -reference (C# compiler options).

您可以將中繼資料 Aliases 加入至原始的「參考」項目,藉以在 MSBuildMSBuild 檔案中指定 Visual C#Visual C# 參考別名。You can specify a Visual C#Visual C# reference alias in an MSBuildMSBuild file by adding the metadata Aliases to the original "Reference" item. 例如,若要在下列 Csc 命令列中設定別名 "LS1":For example, to set the alias "LS1" in the following Csc command line:

CSC /r:LS1=MyCodeLibrary.dll /r:LS2=MyCodeLibrary2.dll *.cs

您可以使用:you would use:

<Reference Include="MyCodeLibrary"> <Aliases>LS1</Aliases> </Reference>
Resources 選擇性的 ITaskItem[] 參數。Optional ITaskItem[] parameter.

將 .NET Framework 資源內嵌到輸出檔中。Embeds a .NET Framework resource into the output file.

傳遞到此參數的項目可以具備名為 LogicalNameAccess 的選擇性中繼資料項目。Items passed into this parameter can have optional metadata entries named LogicalName and Access. LogicalName 會對應至 /resource 參數 (Switch) 的 identifier 參數 (Parameter),而 Access 會對應至 accessibility-modifier 參數 (Parameter)。LogicalName corresponds to the identifier parameter of the /resource switch, and Access corresponds to accessibility-modifier parameter. 如需詳細資訊,請參閱 -resource (C# 編譯器選項)For more information, see -resource (C# compiler options).
ResponseFiles 選擇性的 String 參數。Optional String parameter.

指定包含適用於此工作之命令的回應檔。Specifies the response file that contains commands for this task. 如需詳細資訊,請參閱 @ (指定回應檔)For more information, see @ (Specify response file).
Sources 選擇性的 ITaskItem[] 參數。Optional ITaskItem[] parameter.

指定一或多個 Visual C#Visual C# 原始程式檔。Specifies one or more Visual C#Visual C# source files.
TargetType 選擇性的 String 參數。Optional String parameter.

指定輸出檔的檔案格式。Specifies the file format of the output file. 此參數的值如下:library (可建立程式碼程式庫)、exe (可建立主控台應用程式)、module (可建立模組) 或 winexe (可建立 Windows 程式)。This parameter can have a value of library, which creates a code library, exe, which creates a console application, module, which creates a module, or winexe, which creates a Windows program. 預設值為 libraryThe default value is library. 如需詳細資訊,請參閱 -target (C# 編譯器選項)For more information, see -target (C# compiler options).
TreatWarningsAsErrors 選擇性的 Boolean 參數。Optional Boolean parameter.

如果是 true,即會將所有警告視為錯誤。If true, treats all warnings as errors. 如需詳細資訊,請參閱 -warnaserror (C# 編譯器選項)For more information, see -warnaserror (C# compiler options).
UseHostCompilerIfAvailable 選擇性的 Boolean 參數。Optional Boolean parameter.

如果有的話,即會指示工作來使用同處理序編譯器物件。Instructs the task to use the in-process compiler object, if available. 僅可供 Visual StudioVisual Studio 使用。Used only by Visual StudioVisual Studio.
Utf8Output 選擇性的 Boolean 參數。Optional Boolean parameter.

使用 UTF-8 編碼記錄編譯器輸出。Logs compiler output using UTF-8 encoding. 如需詳細資訊,請參閱 -utf8output (C# 編譯器選項)For more information, see -utf8output (C# compiler options).
WarningLevel 選擇性的 Int32 參數。Optional Int32 parameter.

指定要針對編譯器顯示的警告層級。Specifies the warning level for the compiler to display. 如需詳細資訊,請參閱 -warn (C# 編譯器選項)For more information, see -warn (C# compiler options).
WarningsAsErrors 選擇性的 String 參數。Optional String parameter.

指定要視為錯誤的警告清單。Specifies a list of warnings to treat as errors. 如需詳細資訊,請參閱 -warnaserror (C# 編譯器選項)For more information, see -warnaserror (C# compiler options).

此參數會覆寫 TreatWarningsAsErrors 參數。This parameter overrides the TreatWarningsAsErrors parameter.
WarningsNotAsErrors 選擇性的 String 參數。Optional String parameter.

指定不要視為錯誤的警告清單。Specifies a list of warnings that are not treated as errors. 如需詳細資訊,請參閱 -warnaserror (C# 編譯器選項)For more information, see -warnaserror (C# compiler options).

唯有將 TreatWarningsAsErrors 參數設為 true 時,此參數才有用。This parameter is only useful if the TreatWarningsAsErrors parameter is set to true.
Win32Icon 選擇性的 String 參數。Optional String parameter.

在組件中插入 .ico 檔案,讓輸出檔在 [檔案總管] 中具有所需的外觀。Inserts an .ico file in the assembly, which gives the output file the desired appearance in File Explorer. 如需詳細資訊,請參閱 -win32icon (C# 編譯器選項)For more information, see -win32icon (C# compiler options).
Win32Manifest 選擇性的 String 參數。Optional String parameter.

指定要包含的 Win32 資訊清單。Specifies the Win32 manifest to be included.
Win32Resource 選擇性的 String 參數。Optional String parameter.

將 Win32 資源檔 ( .res) 插入輸出檔中。Inserts a Win32 resource (.res) file in the output file. 如需詳細資訊,請參閱 -win32res (C# 編譯器選項)For more information, see -win32res (C# compiler options).

備註Remarks

除了上述所列的參數,此項工作還會繼承 Microsoft.Build.Tasks.ManagedCompiler 類別中的參數,此類別繼承 ToolTaskExtension 類別,而後者本身又繼承 ToolTask 類別。In addition to the parameters listed above, this task inherits parameters from the Microsoft.Build.Tasks.ManagedCompiler class, which inherits from the ToolTaskExtension class, which itself inherits from the ToolTask class. 如需這些其他參數的清單及其描述,請參閱 ToolTaskExtension 基底類別For a list of these additional parameters and their descriptions, see ToolTaskExtension base class.

範例Example

下列範例會使用 Csc 工作,在 Compile 項目集合中從原始程式檔編譯可執行檔。The following example uses the Csc task to compile an executable from the source files in the Compile item collection.

<CSC
    Sources="@(Compile)"
    OutputAssembly="$(AppName).exe"
    EmitDebugInformation="true" />

另請參閱See also