MarkupCompilePass2 工作
MarkupCompilePass2 工作會在參考相同專案中類型的 XAML 檔案上執行第二階段標記編譯。
工作參數
參數 | 描述 |
---|---|
AlwaysCompileMarkupFilesInSeparateDomain |
選擇性的 Boolean 參數。 指定是否在不同的 AppDomain 中執行工作。 如果此參數傳回 false,工作就會在與 MSBuild 相同的 AppDomain 中執行,且執行速度會較快。 如果此參數傳回 true,工作就會在與 MSBuild 隔離的第二個 AppDomain 中執行,且執行速度會較慢。 |
AssembliesGeneratedDuringBuild |
選擇性的 String[] 參數。 指定對在建置程序中變更之組件的參考。 例如,Visual Studio 解決方案可能包含一個專案,此專案參考另一個專案的已編譯輸出。 在此情況下,可以將第二個專案的已編譯輸出新增到 AssembliesGeneratedDuringBuild。 注意:AssembliesGeneratedDuringBuild 必須包含對組建方案所產生之一組完整組件的參考。 |
AssemblyName |
必要的 String 參數。 指定為專案產生之組件的簡短名稱。 例如,如果專案要產生名稱為 WinExeAssembly.exe 的可執行檔,則 AssemblyName 參數的值會是 WinExeAssembly。 |
GeneratedBaml |
選擇性的 ITaskItem[] 輸出參數。 包含採用 XAML 二進位格式的已產生檔案清單。 |
KnownReferencePaths |
選擇性的 String[] 參數。 指定對在建置程序中永不變更之組件的參考。 包含位於全域組件快取 (GAC)、.NET 安裝目錄中等的組件。 |
Language |
必要的 String 參數。 指定編譯器支援的 Managed 語言。 有效的選項為 C#、VB、JScript 及 C++。 |
LocalizationDirectivesToLocFile |
選擇性的 String 參數。 指定如何產生每個來源 XAML 檔案的當地語系化資訊。 有效的選項為 None、CommentsOnly 及 All。 |
OutputPath |
必要的 String 參數。 指定要在其中產生所產生之 XAML 二進位格式檔案的目錄。 |
OutputType |
必要的 String 參數。 指定專案所產生之組件的類型。 有效的選項為 winexe、exe、library 及 netmodule。 |
References |
選擇性的 ITaskItem[] 參數。 指定從檔案到包含 XAML 檔案中所使用類型之組件的參考清單。 一個參考 GenerateTemporaryTargetAssembly 工作產生的組件,必須在 MarkupCompilePass2 工作之前執行。 |
RootNamespace |
選擇性的 String 參數。 指定專案內類別的根命名空間。 當對應的 XAML 檔案未包含 x:Class 屬性時,RootNamespace 也用來作為所產生 Managed 程式碼檔案的預設命名空間。 |
XAMLDebuggingInformation |
選擇性的 Boolean 參數。 值為 true 時,會產生診斷資訊並包含在已編譯的 XAML 中,以協助偵錯。 |
備註
執行 MarkupCompilePass2 之前,您必須先產生一個暫時組件,此組件包含標記編譯階段已被延後之 XAML 檔案所使用的類型。 您可以執行 GenerateTemporaryTargetAssembly 工作來產生暫時組件。
當 MarkupCompilePass2 執行時,系統會將對所產生之暫時組件的參考提供給它,以允許現在將在第一個標記編譯階段中被延後編譯的 XAML 檔案,編譯成二進位格式。
範例
下例示範如何使用 MarkupCompilePass2 工作執行第二階段的編譯。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<UsingTask
TaskName="Microsoft.Build.Tasks.Windows.MarkupCompilePass2"
AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
<Target Name="MarkupCompilePass2Task">
<MarkupCompilePass2
AssemblyName="WPFMSBuildSample"
Language="C#"
OutputType="WinExe"
OutputPath="obj\Debug\"
References=".\obj\debug\WPFMSBuildSample.exe;c:\windows\Microsoft.net\Framework\v2.0.50727\System.dll;C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0\PresentationCore.dll;C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0\PresentationFramework.dll;C:\Program Files\Reference Assemblies\Microsoft\WinFx\v3.0\WindowsBase.dll" />
</Target>
</Project>