Benutzer:MovGP0/NET/Transformations

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
   MovGP0        Über mich        Hilfen        Artikel        Weblinks        Literatur        Zitate        Notizen        Programmierung        MSCert        Physik      

Text Transformations (T4)

[Bearbeiten | Quelltext bearbeiten]

Aktivierung von T4 in MSBuild

[Bearbeiten | Quelltext bearbeiten]
 <?xml version="1.0" encoding="utf-8"?>
    <!-- adding 'TransformAll' target -->
    <Project ToolsVersion="4.0" DefaultTargets="TransformAll;Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

      <!-- importing Visual Studio Parameters -->
      <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />

      <!-- setting standard values in case that properties are not imported successfully -->
      <PropertyGroup>
        <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
        <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
      </PropertyGroup>
      <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
     
       <!-- 
       ... 
       -->
     
      <!-- import targets -->
      <Import Project="$(VSToolsPath)\TextTemplating\Microsoft.TextTemplating.targets" Condition="'$(VSToolsPath)' != ''" />
      <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\TextTemplating\Microsoft.TextTemplating.targets" Condition="false" />

      <!-- setting new property -->
      <PropertyGroup>
        <outputDir>$(OutputPath)</outputDir>
        <TransformOnBuild>true</TransformOnBuild>
        <TransformFile>/**.tt</TransformFile>
      </PropertyGroup>

     <!-- tell MSBuild to use that property -->
      <ItemGroup>
        <T4ParameterValues Include="outputDir">
          <Value>$(outputDir)</Value>
          <InProject>False</InProject> <!-- hide object in Visual Studio -->
        </T4ParameterValues>
      </ItemGroup>
    </Project>

Verwendung:

<#@ assembly name="$(outputDir)\MyLibrary.dll" #>

Source Code Transformations

[Bearbeiten | Quelltext bearbeiten]
  • Wird von NuGet verwendet
  • Datei Employee.cs.pp transformiert nach Employee.cs
namespace $rootnamespace$.Models
{
    public class Employee
    {
        public int Id { get; set; }
        public string Name { get; set; }
        public string ContractId { get; set; }
    }
}

XML Document Transformation (XDT Transform)

[Bearbeiten | Quelltext bearbeiten]
  • Wird von VisualStudio und NuGet verwendet
Configuration Transformation XML Document Transformation
transform .xml files Grünes Häkchensymbol für ja Grünes Häkchensymbol für ja
transform .config files Grünes Häkchensymbol für ja Grünes Häkchensymbol für ja
add XML elements Grünes Häkchensymbol für ja Grünes Häkchensymbol für ja
remove XML elements Rotes X oder Kreuzchensymbol für nein Grünes Häkchensymbol für ja
modify and replace XML elements Rotes X oder Kreuzchensymbol für nein Grünes Häkchensymbol für ja
NuGet Package Folder \content \content
Usage $filename.transform $filename.install.xdt, $filename.uninstall.xdt