共用方式為


GenerateTemporaryTargetAssembly 工作

更新:2007 年 11 月

如果專案中至少有一個可延伸標記語言 (XAML) 頁面參考在該專案區域宣告的型別,GenerateTemporaryTargetAssembly 工作就會產生組件 (Assembly)。產生的組件會在建置程序完成之後或失敗時移除。

工作參數

參數

說明

AssemblyName

必要的 String 參數。

指定針對專案所產生之組件的簡短名稱,同時也是暫時產生之目標組件的名稱。例如,如果專案產生名為 WinExeAssembly.exe 的 Windows 可執行檔,AssemblyName 參數的值就是 WinExeAssembly

CompileTargetName

必要的 String 參數。

指定用來從原始程式檔產生組件的 Microsoft Build Engine (MSBuild) 目標名稱。CompileTargetName 的一般值為 CoreCompile

CompileTypeName

必要的 String 參數。

指定由 CompileTargetName 參數指定之目標所執行的編譯類型。如果是 CoreCompile 目標,這個值會是 Compile

CurrentProject

必要的 String 參數。

指定需要暫存目標組件之專案的 MSBuild 專案檔完整路徑。

GeneratedCodeFiles

選擇性 ITaskItem[] 參數。

指定由 MarkupCompilePass1 工作 工作所產生之語言特定的 Managed 程式碼檔案清單。

IntermediateOutputPath

必要的 String 參數。

指定暫存目標組件將在哪一個目錄中產生。

MSBuildBinPath

必要的 String 參數。

指定 MSBuild.exe 的位置,這個檔案為編譯暫存目標組件時所需。

ReferencePath

選擇性 ITaskItem[] 參數。

指定依路徑和檔名分類的組件清單,這些組件會由編譯至暫存目標組件的型別所參考。

ReferencePathTypeName

必要的 String 參數。

指定編譯目標 (CompileTargetName) 參數所使用的參數,這個目標參數會指定組件參考 (ReferencePath) 清單。適當的值為 ReferencePath

備註

MarkupCompilePass1 工作 執行的第一次標記編譯傳遞會將 XAML 檔案編譯為二進位格式。因此,編譯器需要參考的組件清單,這些組件包含 XAML 檔案所使用的型別。不過,如果 XAML 檔案使用相同專案中定義的型別,那麼在建置專案之前,並不會建立該專案的對應組件。因此,組件參考無法在第一次標記編譯傳遞期間提供。

相反地,MarkupCompilePass1 會將參考相同專案中型別的 XAML 檔案延後到 MarkupCompilePass2 工作執行的第二次標記編譯傳遞,才進行轉換。在 MarkupCompilePass2 執行之前,會先產生暫存組件。此組件包含標記編譯傳遞延後的 XAML 檔案所使用的型別。A reference to the generated assembly is provided to MarkupCompilePass2 執行時,所產生組件的參考會提供給它,以讓延後編譯的 XAML 檔案轉換成二進位格式。

範例

下列範例會產生暫存組件,因為 Page1.xaml 含有相同專案中之型別的參考。

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <UsingTask
    TaskName="Microsoft.Build.Tasks.Windows.GenerateTemporaryTargetAssembly" 
    AssemblyFile="C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\PresentationBuildTasks.dll" />
  <Target Name="GenerateTemporaryTargetAssemblyTask">
    <GenerateTemporaryTargetAssembly
      AssemblyName="WPFMSBuildSample"
      CompileTargetName="CoreCompile"
      CompileTypeName="Compile"
      CurrentProject="FullBuild.proj"
      GeneratedCodeFiles="obj\debug\app.g.cs;obj\debug\Page1.g.cs;obj\debug\Page2.g.cs"
      ReferencePath="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"
      IntermediateOutputPath=".\obj\debug\"
      MSBuildBinPath="$(MSBuildBinPath)"
      ReferencePathTypeName="ReferencePath"/>
  </Target>
</Project>

請參閱

概念

建置 WPF 應用程式 (WPF)

Windows Presentation Foundation XAML 瀏覽器應用程式概觀

其他資源

Windows Presentation Foundation MSBuild 參考

Windows Presentation Foundation MSBuild 工作參考

MSBuild 參考

MSBuild 工作參考