“Punto de entrada no encontrado” de error cuando se utiliza el motor de plantillas de texto en el VS 2008 SDK
-
22-08-2019 - |
Pregunta
Estoy utilizando la clase Microsoft.VisualStudio.TextTemplating.Engine
desde el SDK VS 2008 junto con los objetos del espacio de nombres Microsoft.Practices.RecipeFramework.VisualStudio.Library.Templates
para automatizar el proceso de creación de clases de C # a partir de plantillas T4.
Aquí mi código. Se llevaron directamente a partir del ejemplo de Blog de Oleg Sych ...
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using Microsoft.Practices.RecipeFramework.VisualStudio.Library.Templates;
using Microsoft.VisualStudio.TextTemplating;
namespace PropertyDirectivePot
{
class Program
{
static void Main(string[] args)
{
// Prepare template parameters
var arguments = new Dictionary<string, PropertyData>();
arguments.Add(“MyProperty”,
new PropertyData(Color.AntiqueWhite, typeof(Color)));
// Initialize GAX template host
string currentDirectory = Directory.GetCurrentDirectory();
TemplateHost host = new TemplateHost(currentDirectory, arguments);
host.TemplateFile = Path.Combine(currentDirectory, “PropertyTest.tt”);
// Transform template
string template = File.ReadAllText(host.TemplateFile);
ITextTemplatingEngine engine = new Engine();
string output = engine.ProcessTemplate(template, host);
// Save output
string outputFile = Path.ChangeExtension(host.TemplateFile, “.txt”);
File.WriteAllText(outputFile, output);
}
}
}
El problema
consigo un System.EntryPointNotFoundException
en el punto donde la plantilla se procesa y el archivo de código de salida debe ser devuelto ...
string output = engine.ProcessTemplate(template, host);
Esta excepción sugiere que tengo un conflicto de versiones componente en alguna parte, y googlear ha puesto de manifiesto que este problema se ha experimentado por sí, pero con versiones mucho más antiguas de los componentes que estoy usando. Mis versiones son ...
Visual Studio SP1 9.0.30729.1
Microsoft.VisualStudio.TextTemplating 9.0.0.0
Microsoft.Practices.RecipeFramework.VisualStudio.Library 1.4.0.0
Tengo las últimas versiones de GAX, GAT y el SDK VS2008 (todo descargado e instalado en la actualidad).
¿Alguien tiene alguna idea de lo que está pasando, o cómo podría investigar más a fondo?
Realmente quiero evitar tener que empezar a utilizar un trazador para seguir la pila de llamadas, si es posible: (
Solución
Se han encontrado la respuesta ...
Me refernecing la versión incorrecta del montaje Microsoft.VisualStudio.TextTemplating
.
Me había instalado dos versiones en mi máquina ...
- 8.1.0.0
- 9.0.0.0
La versión particular de Microsoft.Practices.RecipeFramework.VisualStudio.Library
que estaba usando requería la anterior de las dos versiones.