“Ponto de entrada não encontrado” erro ao usar o texto Templating Motor no SDK do VS 2008
-
22-08-2019 - |
Pergunta
Eu estou usando a classe Microsoft.VisualStudio.TextTemplating.Engine
do SDK VS 2008, juntamente com os objetos do namespace Microsoft.Practices.RecipeFramework.VisualStudio.Library.Templates
para automatizar o processo de criação de classes C # a partir de modelos T4.
Aqui meu código. É levado diretamente a partir do exemplo no Blog Oleg do 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);
}
}
}
O Problema
Eu recebo um System.EntryPointNotFoundException
no ponto onde o modelo é processado e o arquivo de código de saída deve ser devolvido ...
string output = engine.ProcessTemplate(template, host);
Esta excepção sugere que tenho um lugar incompatibilidade de versão do componente, e pesquisando revelou que este problema tem sido experimentado por outros, mas com versões muito mais antigas dos componentes que estou usando. Meus versões são ...
Visual Studio SP1 9.0.30729.1
Microsoft.VisualStudio.TextTemplating 9.0.0.0
Microsoft.Practices.RecipeFramework.VisualStudio.Library 1.4.0.0
Eu tenho as últimas versões de GAX, GAT e do VS2008 SDK (todo baixado e instalado hoje).
Alguém tem alguma idéia do que está acontecendo, ou como eu poderia investigar mais?
Eu realmente quero evitar ter que começar a usar um rastreador para seguir a pilha de chamadas, se possível: (
Solução
Encontrou a resposta ...
Eu estava refernecing a versão errada do Microsoft.VisualStudio.TextTemplating
montagem.
Eu tinha duas versões instalado na minha máquina ...
- 8.1.0.0
- 9.0.0.0
A versão particular de Microsoft.Practices.RecipeFramework.VisualStudio.Library
que eu estava usando exigiu a primeira das duas versões.