Aracılığıyla paylaş


GenerateTemporaryTargetAssembly görevi

Projedeki GenerateTemporaryTargetAssembly en az bir XAML sayfası bu projede yerel olarak bildirilen bir türe başvuruda bulunursa, görev bir derleme oluşturur. Oluşturulan derleme, derleme işlemi tamamlandıktan sonra veya derleme işlemi başarısız olursa kaldırılır.

Görev parametreleri

Parametre Tanım
AssemblyName Gerekli Dize parametresi.

Bir proje için oluşturulan derlemenin kısa adını belirtir ve ayrıca geçici olarak oluşturulan hedef derlemenin adıdır. Örneğin, bir proje adı WinExeAssembly.exe olan bir Windows yürütülebilir dosyası oluşturursa AssemblyName parametresi winExeAssembly değerine sahiptir.
CompileTargetName Gerekli Dize parametresi.

Kaynak kod dosyalarından derleme oluşturmak için kullanılan MSBuild hedefinin adını belirtir. CompileTargetName için tipik değer CoreCompile'dir.
CompileTypeName Gerekli Dize parametresi.

CompileTargetName parametresi tarafından belirtilen hedef tarafından gerçekleştirilen derleme türünü belirtir. CoreCompile hedefi için bu değer Derle'dir.
CurrentProject Gerekli Dize parametresi.

Geçici bir hedef derleme gerektiren proje için MSBuild proje dosyasının tam yolunu belirtir.
GeneratedCodeFiles İsteğe bağlı ITaskItem[] parametresi.

MarkupCompilePass1 görevi tarafından oluşturulan dile özgü yönetilen kod dosyalarının listesini belirtir.
IntermediateOutputPath Gerekli Dize parametresi.

Geçici hedef derlemenin oluşturulduğu dizini belirtir.
MSBuildBinPath Gerekli Dize parametresi.

Geçici hedef derlemeyi derlemek için gereken MSBuild.exe dosyasının konumunu belirtir.
ReferencePath İsteğe bağlı ITaskItem[] parametresi.

Geçici hedef derlemede derlenen türler tarafından başvuruda bulunılan, yola ve dosya adına göre derlemelerin listesini belirtir.
ReferencePathTypeName Gerekli Dize parametresi.

Derleme başvurularının (ReferencePath) listesini belirten derleme hedefi (CompileTargetName) parametresi tarafından kullanılan parametreyi belirtir. Uygun değer ReferencePath'tir.

Açıklamalar

MarkupCompilePass1 tarafından çalıştırılan ilk işaretleme derleme geçişi, XAML dosyalarını ikili biçime derler. Sonuç olarak, derleyicinin XAML dosyaları tarafından kullanılan türleri içeren başvuruda bulunılan derlemelerin bir listesine ihtiyacı vardır. Ancak, bir XAML dosyası aynı projede tanımlanan bir tür kullanıyorsa, proje oluşturulana kadar ilgili proje için karşılık gelen bir derleme oluşturulmaz. Bu nedenle, ilk işaretleme derleme geçişi sırasında derleme başvurusu sağlanamaz.

Bunun yerine, MarkupCompilePass1, aynı projedeki türlere başvurular içeren XAML dosyalarının MarkupCompilePass2 tarafından yürütülen ikinci bir işaretleme derleme geçişine dönüştürülme işlemini engeller. MarkupCompilePass2 yürütülmeden önce geçici bir derleme oluşturulur. Bu derleme, işaretleme derleme geçişi ertelenen XAML dosyaları tarafından kullanılan türleri içerir. Ertelenen derleme XAML dosyalarının ikili biçime dönüştürülmesini sağlamak için çalıştırıldığında MarkupCompilePass2'ye oluşturulan derlemeye başvuru sağlanır.

Örnek

Aşağıdaki örnek, Page1.xaml aynı projedeki bir türe başvuru içerdiğinden geçici bir derleme oluşturur.

<Project>
  <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>

Ayrıca bkz.