« Point d'entrée introuvable » erreur lors de l'utilisation du moteur de texte Templating dans le SDK VS 2008
-
22-08-2019 - |
Question
J'utilise la classe Microsoft.VisualStudio.TextTemplating.Engine
du SDK VS 2008 ainsi que les objets de l'espace de noms Microsoft.Practices.RecipeFramework.VisualStudio.Library.Templates
pour automatiser le processus de création de classes C # à partir de modèles T4.
Voici mon code. Il pris directement à partir de l'exemple sur Blog 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);
}
}
}
Le problème
Je reçois un System.EntryPointNotFoundException
au point où le modèle est traité et le fichier de code de sortie doit être retourné ...
string output = engine.ProcessTemplate(template, host);
Cette exception donne à penser que j'ai une incompatibilité de version du composant quelque part, et
La solution trouvé la réponse ... je refernecing la mauvaise version de l'ensemble J'avais deux version installée sur ma machine ... La version particulière de Microsoft.VisualStudio.TextTemplating
.
Microsoft.Practices.RecipeFramework.VisualStudio.Library
que j'utilisais nécessité la plus rapprochée des deux versions.