共用方式為


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#VBJScriptC++
LocalizationDirectivesToLocFile 選擇性的 String 參數。

指定如何產生每個來源 XAML 檔案的當地語系化資訊。 有效的選項為 NoneCommentsOnlyAll
OutputPath 必要的 String 參數。

指定要在其中產生所產生之 XAML 二進位格式檔案的目錄。
OutputType 必要的 String 參數。

指定專案所產生之組件的類型。 有效的選項為 winexeexelibrarynetmodule
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>

另請參閱