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>
請參閱
概念
Windows Presentation Foundation XAML 瀏覽器應用程式概觀
其他資源
Windows Presentation Foundation MSBuild 參考