Distributing microsoft.visualstudio.texttemplating.dll with a custom application
We are writing an application that will use T4 to generate Flex / Actionscript to compile to SWF. We would like to distribute this application to users who do not have VS. I have searched and searched and could not find anywhere information about redistributing microsoft.visualstudio.texttemplating.dll with your applications, except for this code plex project ( http://customtemplating.codeplex.com/ ) which allows you to host your own T4 constructor ( which uses and includes a copy of microsoft.visualstudio.texttemplating.dll).
So, does anyone know for sure or can tell me where I can find information on including this DLL in our application?
Thank you in advance! Ilya
source to share
I have emailed Tim Cools to the Custom Templating project on CodePlex and he emailed MS from this thread ( http://social.msdn.microsoft.com/Forums/en-US/vsx/thread/1ab0bf3f- 2810-4adf-bf75-900b98dee8e2 ) with the same question. Here's the answer:
"If the user has VS2008 or higher installed, he will install the dll. Redistributable without redistribution. If he is on VS2005 then he will need to set the DSL distribution time as it is not included in VS2005 but this requires him to also install VS2005 (as clearly stated in the thread you are linking to).
So the short answer is that all users must have VS in order to use this DLL. "
Tim later continues: "But actually there is a redist that contains a DLL: Microsoft Visual Studio 2008 Shell (integrated mode) Redistributable package [link removed - new custom limit] But this is too big (315.9 MB) compared to dll (84 kb) ). "
That being said, I agree.
The last answer seems to be in T4 for VS 2010 Beta, as described here: [link removed - new custom limit]
"[T] already has some new features for T4 in Beta1 VS 2010, in particular the ability to have a preprocessed template that compiles to code without depending on T4 runtime. You can read a little more about it on my blog at [link removed - new user limit] and [link removed - new user limit] "
So this is what we will probably go with. Pre-process the templates so they don't have any dependencies. I just wanted to share with everyone what I found.
source to share
I wrote a clean reverse version of the T4 engine for the MonoDevelop development environment. It's open source, licensed under the MIT / X11 permissive license, so you can embed the engine in your application or redistribute it. It also implements the TextTransform.exe command line program and some APIs in the Mono.TextTemplating namespace to help with engine placement.
The only real missing feature right now is custom directive providers, but fixes for this are welcome :-)
You can get the code from monodevelop / main / src / addins / TextTemplating in Mono SVN.
source to share
I had a similar problem but involving a build server.
For others who need to run text generation on the build server (and not a redistribution script from a legal point of view), Microsoft recommends copying the files manually :
Transforming text on the build server
If your build server is running on a computer that does not have Visual Studio you should copy the following files to your build computer from the computer where the Visual Studio SDK is installed:
\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
Update . Eventually I found the files in my GAC, but nowhere else. After installing the Visual Studio 2010 SDK (on the build server), they appeared in C:\Program Files (x86)\Microsoft Visual Studio 2010 SDK\VisualStudioIntegration\Common\Assemblies\v4.0
but not in the GAC on this machine. So I ended up with:
- Install SDK VS2010 on build server
- Register assemblies to the GAC manually
source to share