How To: Migrate T4 Text Templates from VS2008 to VS2010 Beta 2

At the .net open space in Leipzig I promised to write down the experience in migrating T4 Text Templates from VS2008 to VS2010 Beta 2. And here we go…

In order to migrate you will need to do the following

Issue1:  C# Version is now 4 by default

Old:

<#@ template language="C#v3.5" #>

New:

<#@ template language="C#" #>

Issue2:  ModelingTextTransformation not any longer found

Old:

<#@ template inherits="Microsoft.VisualStudio.TextTemplating.VSHost.ModelingTextTransformation" #>

New: (You need an assembly reference eventually)

<#@ template inherits="Microsoft.VisualStudio.TextTemplating.VSHost.ModelingTextTransformation" #>
<#@ assembly name="C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.TextTemplating.Modeling.10.0.dll"#>

 

Issue: EnvDTE ProgID has changed from 9.0 to 10.0

Old:

<#@ assembly name=”envdte” #>
<# EnvDTE.DTE theDTE = (EnvDTE.DTE)System.Runtime.InteropServices.Marshal.
GetActiveObject("VisualStudio.DTE.9.0"); #>

New:

Note it is always better to get EnvDTE from the Template host – this requires hostSpecific to be true

<#@ template hostSpecific="true" #>
<#@ assembly name=”envdte” #>

Now you can get the envdte this way

<#  IServiceProvider hostServiceProvider = (IServiceProvider)host;
var theDTE = (EnvDTE.DTE)hostServiceProvider.GetService(typeof(EnvDTE.DTE)); #>

Issue: Some other DSL DLL Names changed - here are new names

In GAC (do not use “.dll” in <#assembly#> reference)

Microsoft.VisualStudio.Modeling.Sdk.Diagrams.10.0
Microsoft.VisualStudio.Modeling.Sdk.10.0

Not in GAC (use. dll when referencing them)

Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll
Microsoft.VisualStudio.TextTemplating.Modeling.10.0.dll
Microsoft.VisualStudio.TextTemplating.VSHost.10.0.dll 

You find them here

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\

or here

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\

or in the SDK Install Dir

I think these are the most common issues. I will add if i find more.

Happy generating

Tim

Published 20 October 09 08:15 by timfis

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# Gareth Jones said on October 20, 2009 11:55 PM:

Hey Tim - thanks for this - coupel of points

Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll Microsoft.VisualStudio.TextTemplating.VSHost.10.0.dll

These two should definitely be in the GAC - it's a bug if they are not.

You shouldn't need the reference for the ModelingBaseClass if you are using any DSL directive processor as it should contribute the assembly reference.

Leave a Comment

(required) 
(optional)
(required) 

  
Enter Code Here: Required

Search

This Blog

Syndication

Page view tracker