Udostępnij przez


GenerateTemporaryTargetAssembly, zadanie

Zadanie GenerateTemporaryTargetAssembly generuje zestaw, jeśli co najmniej jedna strona XAML w projekcie odwołuje się do typu zadeklarowanego lokalnie w tym projekcie. Wygenerowany zestaw zostanie usunięty po zakończeniu procesu kompilacji lub jeśli proces kompilacji zakończy się niepowodzeniem.

Parametry zadania

Parametr Opis
AssemblyName Wymagany parametr ciągu .

Określa krótką nazwę zestawu, który jest generowany dla projektu, a także nazwę zestawu docelowego, który jest tymczasowo generowany. Jeśli na przykład projekt generuje plik wykonywalny systemu Windows, którego nazwa to WinExeAssembly.exe, parametr AssemblyName ma wartość WinExeAssembly.
CompileTargetName Wymagany parametr ciągu .

Określa nazwę docelowego programu MSBuild, który jest używany do generowania zestawów z plików kodu źródłowego. Typową wartością parametru CompileTargetName jest CoreCompile.
CompileTypeName Wymagany parametr ciągu .

Określa typ kompilacji wykonywanej przez element docelowy określony przez parametr CompileTargetName . Dla obiektu docelowego CoreCompile ta wartość to Kompiluj.
CurrentProject Wymagany parametr ciągu .

Określa pełną ścieżkę pliku projektu MSBuild dla projektu, który wymaga tymczasowego zestawu docelowego.
GeneratedCodeFiles Opcjonalny parametr ITaskItem[] .

Określa listę plików kodu zarządzanego specyficznego dla języka, które zostały wygenerowane przez zadanie MarkupCompilePass1 .
IntermediateOutputPath Wymagany parametr ciągu .

Określa katalog, do którego jest generowany tymczasowy zestaw docelowy.
MSBuildBinPath Wymagany parametr ciągu .

Określa lokalizację MSBuild.exe, która jest wymagana do skompilowania tymczasowego zestawu docelowego.
ReferencePath Opcjonalny parametr ITaskItem[] .

Określa listę zestawów według ścieżki i nazwy pliku, do których odwołuje się typy skompilowane w tymczasowym zestawie docelowym.
ReferencePathTypeName Wymagany parametr ciągu .

Określa parametr używany przez element docelowy kompilacji (CompileTargetName), który określa listę odwołań do zestawów (ReferencePath). Odpowiednią wartością jest ReferencePath.

Uwagi

Pierwszy przebieg kompilacji znaczników, który jest uruchamiany przez markupCompilePass1, kompiluje pliki XAML do formatu binarnego. W związku z tym kompilator potrzebuje listy zestawów, do których odwołuje się odwołanie, które zawierają typy używane przez pliki XAML. Jeśli jednak plik XAML używa typu zdefiniowanego w tym samym projekcie, odpowiedni zestaw dla tego projektu nie zostanie utworzony, dopóki projekt nie zostanie skompilowany. W związku z tym nie można podać odwołania do zestawu podczas pierwszego przekazywania kompilacji znaczników.

Zamiast tego MarkupCompilePass1 odwołuje konwersję plików XAML, które zawierają odwołania do typów w tym samym projekcie do drugiego przebiegu kompilacji znaczników, który jest wykonywany przez MarkupCompilePass2. Przed wykonaniem znaczników MarkupCompilePass2 jest generowany zestaw tymczasowy. Ten zestaw zawiera typy używane przez pliki XAML, których przekazywanie kompilacji znaczników zostało odroczone. Odwołanie do wygenerowanego zestawu jest udostępniane markupCompilePass2 po uruchomieniu, aby umożliwić konwersję plików XAML kompilacji odroczonej na format binarny.

Przykład

Poniższy przykład generuje zestaw tymczasowy, ponieważ page1.xaml zawiera odwołanie do typu, który znajduje się w tym samym projekcie.

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

Zobacz też