Udostępnij za pośrednictwem


Generowanie kodu w proces kompilacji

Można wywoływać przekształcenie tekstu jako część procesu tworzenia Visual Studio roztworu.Umożliwia to zapewnić pliki generowane na podstawie szablonów są aktualne, zanim zostały one skompilowane.Pozwala to uniknąć sytuacji, w której użytkownik zapomniał kliknij Transform wszystkie szablony przed budowania projektu lub sprawdzanie w kodzie.Transformacja tekstu zadania mogą być wykonywane zarówno przez Visual Studio lub MSBuild i na serwerze kompilacji.

Łącznie z zadaniami przekształcić tekst w plikach programu Project

Ee847423.collapse_all(pl-pl,VS.110).gifZainstaluj wizualizacji i modelowania SDK

Aby włączyć kompilacji zadania na komputerze dewelopera, zainstaluj programu Visual Studio, wizualizacji i modelowania SDK.

Aby włączyć zadania kompilacji serwera kompilacji, zobacz Przekształcenie tekstu na serwerze budować.

Ee847423.collapse_all(pl-pl,VS.110).gifEdytowanie pliku projektu

Aby wywołać przekształcenie tekstu, należy edytować plik, który definiuje projektu.Te właściwości nie można edytować w edytorze właściwości projektu.W związku z tym należy zamknąć projekt i edytować go jako plik tekstowy.

Aby edytować tekst pliku projektu

  1. W oknie Solution Explorer, kliknij prawym przyciskiem myszy projekt, a następnie kliknij przycisk Projektu Unload.

  2. Ponownie kliknij prawym przyciskiem myszy projekt, a następnie kliknij przycisk EdytujProjekt.

    Tekst pliku projektu pojawia się w edytorze XML.

Aby ponownie otworzyć projektu po zakończeniu edycji

  1. Zamknij Edytor XML.

  2. W oknie Solution Explorer, kliknij prawym przyciskiem myszy projekt, a następnie kliknij przycisk Reload projektu.

Ee847423.collapse_all(pl-pl,VS.110).gifImportowanie obiektów docelowych przekształcenie tekstu

Zadania kompilacji przekształcenie tekstu są zdefiniowane w pojedynczym pliku.Po standardowych cele C# lub Visual Basic, należy zaimportować go.

Aby zaimportować tekst cele transformacji

  1. Wyszukiwanie pliku dla wiersza podobny do jednego z tych wierszy:

    <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

    - lub -

    <Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />

  2. Po tej linii należy wstawić importu tekstu dynamicznego:

    <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\TextTemplating\v11.0\Microsoft.TextTemplating.targets" />

Ee847423.collapse_all(pl-pl,VS.110).gifUstawianie właściwości do kontroli sposobu konstruowania jest wykonywane.

Wstaw następujący tekst w pliku projektu.Zobacz poniższe sekcje dotyczące innych właściwości, które mogą być wstawiane z tej grupy właściwości.

<PropertyGroup>
 <TransformOnBuild>true</TransformOnBuild>
 <!-- Other properties can be inserted here -->
</PropertyGroup>

TransformOnBuildpowoduje, że wszystkie szablony w programie project mają być wykonane podczas budowania projektu.

Ee847423.collapse_all(pl-pl,VS.110).gifWywoływanie transformacji

Ee847423.collapse_all(pl-pl,VS.110).gifPrzekształcanie wszystkich szablonów w budowania projektu

Jeśli plik projektu zawiera następujące właściwości wszystkich szablonów tekst projektu zostanie wykonana w każdym przypadku, gdy zbudowane projektu, z zastrzeżeniem funkcja przyrostowe kompilacji.

<TransformOnBuild>true</TransformOnBuild>

Można wywoływać przekształca albo naciskając klawisz F5 w Visual Studio, lub za pomocą MSBuild.Na przykład:

msbuild myproject.csproj

Jeżeli pominięto parametr TransformOnBuild lub zestaw ją na wartość false, szablony nie zostaną przekształcone jako automatyczne części budowania projektu.

Ee847423.collapse_all(pl-pl,VS.110).gifDodawanie ścieżek odniesienia

Można dodać do zestawu ścieżek, w których host szuka zestawów, do których odwołuje się szablony.Na przykład:

<ItemGroup>
    <!-- Add VS\...\PublicAssemblies to the list of places
         to look for assemblies used by templates. -->
    <T4ReferencePath Include="$(VsIdePath)PublicAssemblies\" />
</ItemGroup>

Ee847423.collapse_all(pl-pl,VS.110).gifPrzekształcanie określone szablony

Określone pliki można przekształcać, wywołując Transform zadań z msbuild narzędzia.To zadanie nie zależy od TransformOnBuild właściwość, a nie kompilowania plików projektu.Należy zaimportować pliku tekstowego cele dynamicznego jak opisano w poprzedniej sekcji.

Na przykład, aby przekształcić określonego pliku:

msbuild myproj.proj /t:Transform /p:TransformFile=MyTemplate.tt

Można także użyć znaków wieloznacznych w TransformFile parametru.Na przykład polecenie to przekształca wszystkie pliki .tt w folderze GeneratedCode:

msbuild dsl.csproj /t:Transform /p:TransformFile="GeneratedCode\**\*.tt"

Ee847423.collapse_all(pl-pl,VS.110).gifKompilacja przyrostowe

Domyślnie Menedżer kompilacji stara się uniknąć wykonywania szablonu, jeśli jej plik wyjściowy jest aktualny.Aby to zrobić, monitoruje system plików, aby zobaczyć, które pliki są odczytywane przez kod szablonu.Przy każdej kolejnej okazji porównuje daty modyfikacji tych plików z datą pliku wyjściowego.Szablon jest wykonywana, jeśli każdy plik wejściowy został zmodyfikowany bardziej niedawno niż plik wyjściowy.Szablon jest również wykonywane, jeżeli nie ma żadnych informacji o poprzednich egzekucji tego szablonu.

Wynik jest, że plik wyjściowy będzie regenerowany, jeśli starsza niż dowolny z następujących plików:

  • Tekst pliku szablonu

  • Pliki, które są określone w <#@include#> dyrektyw

  • Pliki, które są odczytywane przez kod wprowadzony w szablonie

  • Pliki, które są włączone lub odczytać przez przetwórcę w dyrektywie, używany w szablonie

Jeśli chcesz upewnić się, że wszystkie szablony są wykonywane w każdym kompilacji należy wstawić tę właściwość:

<TransformOutOfDateOnly>false</TransformOutOfDateOnly>

Ee847423.collapse_all(pl-pl,VS.110).gifKontrola źródła

Nie ma żadnych szczególnych wbudowane funkcje integracji z systemu kontroli źródła.Można jednak dodać własne rozszerzenia, na przykład aby wyewidencjonować i zaewidencjonować plik wygenerowany.

Domyślnie, unika zastąpienie pliku, który jest oznaczony jako read-tylko zadania Przekształć tekst i po napotkaniu tego pliku, błąd jest rejestrowany Visual Studio lista błędów i awarii zadania.

Aby określić, powinny zostać zastąpione pliki tylko do odczytu, Wstaw tę właściwość:

<OverwriteReadOnlyOuputFiles>true</OverwriteReadOnlyOuputFiles>

Chyba że można dostosować krok postprocessing, ostrzeżenie będą rejestrowane na liście błędów, gdy plik jest zastępowany.

Ee847423.collapse_all(pl-pl,VS.110).gifDostosowywanie procesu tworzenia

Można dostosować proces kompilacji, na przykład wyewidencjonować pliki, które zostały zastąpione.Dwa punkty dostosowania są dostarczane, które są nazywane przed i po przekształceniu.

Aby zdefiniować te punkty, należy zdefiniować właściwości $(BeforeTransform) i $(AfterTransform).

Na przykład:

<PropertyGroup>
    <BeforeTransform>CustomPreTransform</BeforeTransform>
    <AfterTransform>CustomPostTransform;$(AfterTransform)</AfterTransform>
  </PropertyGroup>
  <Target Name="CustomPreTransform">
    <Message Text="In CustomPreTransform..." Importance="High" />
  </Target>
  <Target Name="CustomPostTransform">
    <Message Text="In CustomPostTransform..." Importance="High" />
  </Target>

W AfterTransform, można odwoływać się do poniższej listy:

  • GeneratedFiles - lista plików zapisanych przez proces.Dla tych plików, które są istniejące pliki tylko do odczytu będzie prawdziwe %(GeneratedFiles.ReadOnlyFileOverwritten).Pliki te można sprawdzić kontroli źródła.

  • NonGeneratedFiles - lista plików tylko do odczytu, które nie zostały zastąpione.

Przy użyciu tych list, można na przykład wyewidencjonować zastępowanie plików.

Transformacja tekstu w serwera kompilacji

Jeśli serwer kompilacji jest uruchamiany na komputerze, na którym Visual Studio jest nie jest zainstalowany, należy skopiować następujące pliki do komputera kompilacji z komputera, na którym Visual Studio SDK jest zainstalowany:

  • \Program Files\Microsoft visual Studio 2010 SDK\VisualStudioIntegration\Common\Assemblies\v4.0\

    • Microsoft.VisualStudio.TextTemplating.11.0.dll

    • Microsoft.VisualStudio.TextTemplating.Interfaces.11.0.dll

    • Microsoft.VisualStudio.TextTemplating.VSHost.11.0.dll

  • \Program Files\MSBuild\Microsoft\VisualStudio\TextTemplating\v11.0\

    • Microsoft.VisualStudio.TextTemplating.SDK.Host.11.0.dll
  • \Program Files\Microsoft visual Studio 11.0\Common7\IDE\PublicAssemblies\

    • Microsoft.VisualStudio.TextTemplating.Modeling.11.0.dll

Aby uzyskać więcej informacji, zobacz Wdrażanie i konfigurowanie kontrolera kompilacji.

Zobacz też

Inne zasoby

Visual Studio, wizualizacji i modelowanie SDK