Sdílet prostřednictvím


Generování kódu v procesu sestavení

Transformace textu jako součást procesu vytváření můžete vyvolat Visual Studio roztoku.Můžete to tak, aby byly soubory generované ze šablony aktuální před jsou zkompilovány.Umožňuje zabránit situaci, ve které uživatel zapomenuté na Transformace všechny šablony před stavební projekt nebo kontroly v kódu.Transformace textu úlohy lze provést i Visual Studio nebo MSBuild a na sestavení serveru.

Včetně úkolů transformace textu v souborech projektu

Ee847423.collapse_all(cs-cz,VS.110).gifInstalace vizualizaci a modelování SDK

Chcete-li povolit vytváření úkolů ve vývojovém počítači nainstalovat Visual Studio vizualizaci a modelování SDK.

Povolit sestavení úkoly na sestavení serveru naleznete v tématu Transformace textu na sestavení serveru.

Ee847423.collapse_all(cs-cz,VS.110).gifUpravit soubor projektu

Vyvolat transformace textu, je nutné upravit soubor, který definuje projektu.Tyto vlastnosti nelze upravit v editoru vlastnosti projektu.Proto musí zavřít projekt a upravit jako textový soubor.

Úpravy textu v souboru projektu

  1. V aplikaci Solution Explorer klepněte pravým tlačítkem myši projekt a klepněte na tlačítko Uvolnění projektu.

  2. Klepněte pravým tlačítkem projekt a klepněte na tlačítko Upravitprojektu.

    Text souboru projektu se zobrazí v editoru XML.

Po dokončení úprav znovu projektu

  1. Ukončete XML editor.

  2. V aplikaci Solution Explorer klepněte pravým tlačítkem myši projekt a klepněte na tlačítko Znovu načíst projekt.

Ee847423.collapse_all(cs-cz,VS.110).gifImport cíle transformace textu

Úkoly sestavení transformace textu jsou definovány v jediném souboru.Je nutné importovat po standardní cíle C# nebo Visual Basic.

Import cíle transformace textu

  1. Vyhledejte soubor pro řádky podobné tyto řádky:

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

    -nebo-

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

  2. Po tomto řádku vložte import textu Templating:

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

Ee847423.collapse_all(cs-cz,VS.110).gifNastavit vlastnosti ovládacího prvku jak sestavení je provedena.

Vložte následující text do souboru projektu.Naleznete v následujících částech pro jiné vlastnosti, které lze vložit do této skupiny vlastností.

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

TransformOnBuildzpůsobí, že všechny šablony projektu, které mají být provedeny při vytváření projektu.

Ee847423.collapse_all(cs-cz,VS.110).gifVyvolání transformace

Ee847423.collapse_all(cs-cz,VS.110).gifVšechny šablony v sestavení projektu transformace

Pokud zahrnete následující vlastnost v souboru projektu, všechny šablony text v projektu bude spuštěn při každém projektu je sestaven s přihlédnutím k funkci přírůstkového sestavení.

<TransformOnBuild>true</TransformOnBuild>

Můžete vyvolat transformuje buď stisknutím klávesy F5 v Visual Studio, nebo pomocí MSBuild.Příklad:

msbuild myproject.csproj

Vynecháte-li TransformOnBuild nebo nastavit na hodnotu NEPRAVDA, šablony nejsou transformovány jako součást automatické sestavení projektu.

Ee847423.collapse_all(cs-cz,VS.110).gifPřidání odkazu cest

Můžete přidat do sady cesty, ve které hledá hostitele sestavení, na které se odkazuje v šablonách.Příklad:

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

Ee847423.collapse_all(cs-cz,VS.110).gifTransformace konkrétní šablony

Zadané soubory můžete transformovat vyvoláním Transform úloh s msbuild nástroj.Tento úkol není závislý na TransformOnBuild vlastnost a nelze kompilovat soubory projektu.Je nutné importovat soubor text templating cíle popsané v předchozí části.

Chcete-li například určitý soubor transformace:

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

Můžete použít také zástupné znaky v TransformFile parametr.Například příkaz převede všechny .tt soubory ve složce GeneratedCode:

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

Ee847423.collapse_all(cs-cz,VS.110).gifPřírůstkové sestavení

Výchozí sestavení správce pokusí zabránit spuštění šablony, pokud jeho výstupního souboru je aktuální.Chcete-li to provést, sleduje systému souborů, soubory, které jsou číst kód šablony.Navazující další zprávy pak porovnává datum změny těchto souborů s datem výstupního souboru.Pokud žádné vstupní soubor byl změněn nedávno než výstupní soubor provedením šablony.Šablona rovněž provedeny, pokud nejsou žádné informace o předchozím spuštění této šablony.

Výsledkem je, že bude generováno výstupní soubor, pokud je starší než kterýkoli z následujících souborů:

  • Textový soubor šablony

  • Soubory, které jsou specifikovány v <#@include#> směrnic

  • Soubory, které jsou čtení kódu šablony

  • Soubory, které jsou součástí nebo číst směrnice procesoru v šabloně

Ujistěte se, že všechny šablony se provádějí v každém sestavení, vložte tuto vlastnost:

<TransformOutOfDateOnly>false</TransformOutOfDateOnly>

Ee847423.collapse_all(cs-cz,VS.110).gifZdroj ovládacího prvku

Existuje konkrétní předdefinovanou integraci s systému správy zdrojů.Můžete však přidat vlastní rozšíření, například rezervovat a kontrola ve vytvořeném souboru.

Standardně zabrání přepsání souboru, který je označen jako čtení-pouze úkol transformace textu a při výskytu těchto souborů je zaznamenána chyba Visual Studio seznam chyb a selhání úlohy.

Chcete-li určit, že soubory jen pro čtení, být přepsány, vložte tuto vlastnost:

<OverwriteReadOnlyOuputFiles>true</OverwriteReadOnlyOuputFiles>

Pokud upravíte postprocessing krok, upozornění Pokud je soubor přepsán v seznamu chyb protokolovány.

Ee847423.collapse_all(cs-cz,VS.110).gifPřizpůsobení procesu vytváření

Můžete přizpůsobit procesu vytváření například rezervovat soubory, které jste byl přepsán.Jsou poskytovány dva body úprav, které se nazývají před a po transformaci.

Chcete-li definovat tyto body definují vlastnosti $(BeforeTransform) a $(AfterTransform).

Příklad:

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

V AfterTransform, můžete použít následující seznamy:

  • GeneratedFiles - seznam souborů, které jsou zapsány v procesu.Pro soubory, které Ano existující soubory jen pro čtení bude %(GeneratedFiles.ReadOnlyFileOverwritten) hodnotu true.Tyto soubory lze zkontrolovat ze správy zdrojů.

  • NonGeneratedFiles - seznam jen pro čtení souborů, které nebyly přepsány.

Pomocí těchto seznamů, například rezervovat soubory přepsány.

Transformace textu v serveru sestavení

Pokud se spustí sestavení serveru na počítač, ve kterém Visual Studio není nainstalován, je třeba zkopírovat následující soubory sestavení počítače ze počítač, ve kterém Visual Studio SDK je nainstalován:

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

Další informace naleznete v tématu Nasazení a konfigurace kontroleru sestavení.

Viz také

Další zdroje

Visual Studio vizualizaci a modelování SDK