Csc 工作

包裝 csc.exe,並產生可執行檔 (.exe 檔案)、動態連結程式庫 (.dll 檔案) 或程式碼模組 (.netmodule 檔案)。 如需 csc.exe 的詳細資訊,請參閱 C# 編譯器選項

參數

下表說明 Csc 工作的參數。

參數 描述
AdditionalLibPaths 選擇性的 String[] 參數。

指定要搜尋參考的其他目錄。 如需詳細資訊,請參閱 -lib (C# 編譯器選項)
AddModules 選擇性的 String 參數。

指定要成為組件一部分的一個或多個模組。 如需詳細資訊,請參閱 -addmodule (C# 編譯器選項)
AllowUnsafeBlocks 選擇性的 Boolean 參數。

如果是 true,即會編譯使用 unsafe 關鍵字的程式碼。 如需詳細資訊,請參閱 -unsafe (C# 編譯器選項)
ApplicationConfiguration 選擇性的 String 參數。

指定包含組件繫結設定的應用程式組態檔。
BaseAddress 選擇性的 String 參數。

指定載入 DLL 時慣用的基底位址。 DLL 的預設基底位址是由 .NET Framework Common Language Runtime 所設定。 如需詳細資訊,請參閱 -baseaddress (C# 編譯器選項)
CheckForOverflowUnderflow 選擇性的 Boolean 參數。

指定超出資料類型範圍的整數算術,是否會導致在執行階段發生例外狀況。 如需詳細資訊,請參閱 -checked (C# 編譯器選項)
ChecksumAlgorithm 選擇性的 String 參數。

針對儲存在 PDB 檔案中的來源檔案總和檢查碼,指定計算所用的演算法。 演算法必須是 SHA1 (預設) 或 SHA256。 請參閱 ChecksumAlgorithm
CodeAnalysisRuleset 選擇性的 String 參數。

指定停用特定診斷的規則集檔案。 請參閱 CodeAnalysisRuleset
CodePage 選擇性的 Int32 參數。

指定編譯過程中所有原始程式碼檔使用的字碼頁。 如需詳細資訊,請參閱 -codepage (C# 編譯器選項)
DebugType 選擇性的 String 參數。

指定偵錯類型。 DebugType 可以是 fullpdbonly。 預設值是 full,會將偵錯工具附加至執行中的程式。 指定 pdbonly,讓原始程式碼在偵錯工具中啟動程式時進行偵錯,但只有在將執行中的程式附加到偵錯工具時,才會顯示組譯工具。

此參數會覆寫 EmitDebugInformation 參數。

如需詳細資訊,請參閱 -debug (C# 編譯器選項)
DefineConstants 選擇性的 String 參數。

定義前置處理器符號。 如需詳細資訊,請參閱 -define (C# 編譯器選項)
DelaySign 選擇性的 Boolean 參數。

如果是 true,則表示您只想將公開金鑰放置於組件中。 如果是 false,即表示您想要完整的簽署組件

除非與 KeyFileKeyContainer 參數搭配使用,否則此參數沒有任何作用。

如需詳細資訊,請參閱 -delaysign (C# 編譯器選項)
Deterministic 選擇性的 Boolean 參數。

若為 true,可讓編譯器輸出在輸入相同時編譯之間二進位內容相同的組件。

如需詳細資訊,請參閱 -deterministic (C# 編譯器選項)
DisabledWarnings 選擇性的 String 參數。

指定要停用的警告清單。 如需詳細資訊,請參閱 -nowarn (C# 編譯器選項)
DocumentationFile 選擇性的 String 參數。

將文件註解處理成 XML 檔案。 如需詳細資訊,請參閱 -doc (C# 編譯器選項)
EmbedAllSources 選擇性的 Boolean 參數。

在 PDB 中內嵌所有來源檔案。 如需詳細資訊,請參閱 -embed (C# 編譯器選項)
EmitDebugInformation 選擇性的 Boolean 參數。

如果是 true,工作就會產生偵錯資訊,並將其放在程式資料庫 (.pdb) 檔案中。 如果是 false,工作就不會發出任何偵錯資訊。 預設值為 false。 如需詳細資訊,請參閱 -debug (C# 編譯器選項)
ErrorLog 選擇性的 String 參數。

指定檔案,記錄所有編譯器和分析器的診斷資料。 請參閱 ErrorLog
ErrorReport 選擇性的 String 參數。

提供將 C# 內部錯誤回報給 Microsoft 的便利方式。 此參數可以具有 promptsendnone 的值。 如果將此參數設為 prompt,您將會在編譯器內部錯誤發生時收到提示。 此提示可讓您以電子方式將錯誤報告傳送給 Microsoft。 如果將此參數設為 send,就會自動傳送錯誤報告。 如果將此參數設為 none,則只會在編譯器的文字輸出中報告錯誤。 預設值為 none。 如需詳細資訊,請參閱 -errorreport (C# 編譯器選項)
FileAlignment 選擇性的 Int32 參數。

指定輸出檔案中區段的大小。 如需詳細資訊,請參閱 -filealign (C# 編譯器選項)
GenerateFullPaths 選擇性的 Boolean 參數。

如果是 true,即會在編譯器輸出中指定檔案的絕對路徑。 如果是 false,則會指定檔案的名稱。 預設值為 false。 如需詳細資訊,請參閱 -fullpaths (C# 編譯器選項)
HighEntropyVA 選擇性的 Boolean 參數

啟用高熵位址空間配置隨機化 (ASLR)。 請參閱 HighEntropyVA
KeyContainer 選擇性的 String 參數。

指定密碼編譯金鑰容器的名稱。 如需詳細資訊,請參閱 -keycontainer (C# 編譯器選項)
KeyFile 選擇性的 String 參數。

指定包含密碼編譯金鑰的檔名。 如需詳細資訊,請參閱 -keyfile (C# 編譯器選項)
LangVersion 選擇性的 String 參數。

指定要使用的語言版本。 如需詳細資訊,請參閱 -langversion (C# 編譯器選項)
LinkResources 選擇性的 ITaskItem[] 參數。

在輸出檔中建立 .NET Framework 資源的連結;不要將資源檔放置於輸出檔中。

傳遞到此參數的項目可以具備名為 LogicalNameAccess 的選擇性中繼資料項目。 LogicalName 會對應至 /linkresource 參數 (Switch) 的 identifier 參數 (Parameter),而 Access 會對應至 accessibility-modifier 參數 (Parameter)。 如需詳細資訊,請參閱 -linkresource (C# 編譯器選項)
MainEntryPoint 選擇性的 String 參數。

指定 Main 方法的位置。 如需詳細資訊,請參閱 -main (C# 編譯器選項)
ModuleAssemblyName 選擇性的 String 參數。

指定將包含此模組的組件名稱。
NoConfig 選擇性的 Boolean 參數。

若為 true,即會指示編譯器不要使用 csc.rsp 檔案進行編譯。 如需詳細資訊,請參閱 -noconfig (C# 編譯器選項)
NoLogo 選擇性的 Boolean 參數。

如果是 true,即會隱藏顯示編譯器橫幅資訊。 如需詳細資訊,請參閱 -nologo (C# 編譯器選項)
NoStandardLib 選擇性的 Boolean 參數。

如果是 true,即會防止匯入 mscorlib.dll,此檔案會定義整個系統命名空間。 如果您想要定義或建立自己的系統命名空間和物件,請使用此參數。 如需詳細資訊,請參閱 -nostdlib (C# 編譯器選項)
NoWin32Manifest 選擇性的 Boolean 參數。

如果是 true,就不會包含預設的 Win32 資訊清單。
Nullable 選擇性的 String 參數。

指定可為 Null 的內容。 引數必須是 enabledisablewarningsannotations 的其中一個。 請參閱可為 Null
Optimize 選擇性的 Boolean 參數。

如果是 true,即會啟用最佳化。 如果是 false,則會停用最佳化。 如需詳細資訊,請參閱 -optimize (C# 編譯器選項)
OutputAssembly 選擇性的 String 輸出參數。

指定輸出檔案的名稱。 如需詳細資訊,請參閱 -out (C# 編譯器選項)
OutputRefAssembly 選擇性的 String 參數。

指定輸出參考組件檔的名稱。 如需詳細資訊,請參閱 -refout (C# 編譯器選項)
PathMap 選擇性的 String 參數。

指定如何將實體路徑對應到編譯器所輸出的來源路徑名稱。 請參閱 PathMap
PdbFile 選擇性的 String 參數。

指定偵錯資訊檔案名稱。 預設名稱是副檔名為 .pdb 的輸出檔案名稱。
Platform 選擇性的 String 參數。

指定輸出檔設為目標的處理器平台。 此參數可以具有 x86x64anycpu 的值。 預設值為 anycpu。 如需詳細資訊,請參閱 -platform (C# 編譯器選項)
PreferredUILang 選擇性的 String 參數。

指定 C# 編譯器顯示輸出的語言,例如錯誤訊息。 請參閱 PreferredUILang
PublicSign 選擇性的 Boolean 參數。

公開簽署輸出組件。 請參閱 PublicSign
References 選擇性的 ITaskItem[] 參數。

導致工作將公用類型資訊從指定的項目匯入目前的專案。 如需詳細資訊,請參閱 -reference (C# 編譯器選項)

您可以將中繼資料 Aliases 加入至原始的「參考」項目,藉以在 MSBuild 檔案中指定 C# 參考別名。 例如,若要在下列 Csc 命令列中設定別名 "LS1":

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

您可以使用:

<Reference Include="MyCodeLibrary"> <Aliases>LS1</Aliases> </Reference>
RefOnly 選擇性的 Boolean 參數。

產生參考組件,而非完整組件作為主要輸出。 請參閱 ProduceOnlyReferenceAssembly
ReportAnalyzer 選擇性的 Boolean 參數。

回報其他分析器資訊,例如執行時間。 請參閱 ReportAnalyzer
Resources 選擇性的 ITaskItem[] 參數。

將 .NET Framework 資源內嵌到輸出檔中。

傳遞到此參數的項目可以具備名為 LogicalNameAccess 的選擇性中繼資料項目。 LogicalName 會對應至 /resource 參數 (Switch) 的 identifier 參數 (Parameter),而 Access 會對應至 accessibility-modifier 參數 (Parameter)。 如需詳細資訊,請參閱 -resource (C# 編譯器選項)
ResponseFiles 選擇性的 String 參數。

指定包含適用於此工作之命令的回應檔。 如需詳細資訊,請參閱 @ (指定回應檔)
Sources 選擇性的 ITaskItem[] 參數。

指定一或多個 C# 原始程式檔。
TargetType 選擇性的 String 參數。

指定輸出檔的檔案格式。 此參數的值如下:library (可建立程式碼程式庫)、exe (可建立主控台應用程式)、module (可建立模組) 或 winexe (可建立 Windows 程式)。 預設值是 library。 如需詳細資訊,請參閱 -target (C# 編譯器選項)
TreatWarningsAsErrors 選擇性的 Boolean 參數。

如果是 true,即會將所有警告視為錯誤。 如需詳細資訊,請參閱 -warnaserror (C# 編譯器選項)
UseHostCompilerIfAvailable 選擇性的 Boolean 參數。

如果有的話,即會指示工作來使用同處理序編譯器物件。 僅 Visual Studio 使用。
Utf8Output 選擇性的 Boolean 參數。

使用 UTF-8 編碼記錄編譯器輸出。 如需詳細資訊,請參閱 -utf8output (C# 編譯器選項)
WarningLevel 選擇性的 Int32 參數。

指定要針對編譯器顯示的警告層級。 如需詳細資訊,請參閱 -warn (C# 編譯器選項)
WarningsAsErrors 選擇性的 String 參數。

指定要視為錯誤的警告清單。 如需詳細資訊,請參閱 -warnaserror (C# 編譯器選項)

此參數會覆寫 TreatWarningsAsErrors 參數。
WarningsNotAsErrors 選擇性的 String 參數。

指定不要視為錯誤的警告清單。 如需詳細資訊,請參閱 -warnaserror (C# 編譯器選項)

唯有將 TreatWarningsAsErrors 參數設為 true 時,此參數才有用。
Win32Icon 選擇性的 String 參數。

在組件中插入 .ico 檔案,讓輸出檔在 [檔案總管] 中具有所需的外觀。 如需詳細資訊,請參閱 -win32icon (C# 編譯器選項)
Win32Manifest 選擇性的 String 參數。

指定要包含的 Win32 資訊清單。
Win32Resource 選擇性的 String 參數。

將 Win32 資源檔 (.res) 插入輸出檔中。 如需詳細資訊,請參閱 -win32res (C# 編譯器選項)

ToolTaskExtension 參數

此工作繼承自 ToolTaskExtension 類別,該類別繼承自 ToolTask 類別,而其本身繼承自 Task 類別。 此繼承鏈結將數個參數加入至從它們衍生的工作。

下表說明基底類別的參數:

參數 描述
EchoOff 選擇性的 bool 參數。

當設定為 true 時,此工作會將 /Q 傳遞至 cmd.exe 命令列,使命令列不會被複製到 stdout。
EnvironmentVariables 選擇性 String 陣列參數。

環境變數定義的陣列 (以分號分隔)。 每個定義都應該指定以等號分隔的環境變數名稱和值。 這些變數是在規則環境區塊以外傳遞至繁衍的可執行檔,或選擇性地覆寫。 例如: Variable1=Value1;Variable2=Value2
ExitCode 選擇性 Int32 輸出唯讀參數。

指定已執行命令提供的結束代碼。 如果工作已記錄任何錯誤,但是此程序具有結束代碼 0 (成功),這會設為 -1。
LogStandardErrorAsError 選擇性的 bool 參數。

如果為 true,則標準錯誤資料流上收到的所有訊息都會記錄為錯誤。
StandardErrorImportance 選擇性的 String 參數。

用來從標準錯誤資料流記錄文字的重要性。
StandardOutputImportance 選擇性的 String 參數。

用來從標準輸出資料流記錄文字的重要性。
Timeout 選擇性的 Int32 參數。

指定時間量 (以毫秒為單位),在此時間量之後會終止工作可執行檔。 預設值是 Int.MaxValue,表示沒有逾時期間。 逾時是以毫秒為單位。
ToolExe 選擇性的 string 參數。

專案可能會實作此項目以覆寫 ToolName。 工作可能會覆寫此項目以保留 ToolName。
ToolPath 選擇性的 string 參數。

指定位置,工作會從該位置載入基礎可執行檔。 如果未指定這個參數,工作會使用 SDK 安裝路徑,對應於執行 MSBuild 的架構版本。
UseCommandProcessor 選擇性的 bool 參數。

當設為 true 時,這項工作會針對命令列建立批次檔,並且使用命令處理器來執行,而不是直接執行命令。
YieldDuringToolExecution 選擇性的 bool 參數。

當設為 true 時,這項工作在執行其工作時,會產生節點。

範例

下列範例會使用 Csc 工作,在 Compile 項目集合中從原始程式檔編譯可執行檔。

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

另請參閱