Ошибка «Точка входа не найдена» при использовании механизма шаблонов текста в VS 2008 SDK - PullRequest
1 голос
/ 27 марта 2009

Я использую класс Microsoft.VisualStudio.TextTemplating.Engine из пакета SDK VS 2008 вместе с объектами из пространства имен Microsoft.Practices.RecipeFramework.VisualStudio.Library.Templates для автоматизации процесса создания классов C # из шаблонов T4.

Вот мой код. Это взято прямо из примера на блоге Олега Сыча ...

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);
    }
  }
}

Проблема

Я получаю System.EntryPointNotFoundException в тот момент, когда шаблон обрабатывается и файл выходного кода должен быть возвращен ...

string output = engine.ProcessTemplate(template, host);

Это исключение говорит о том, что у меня где-то не совпадает версия компонента, и поиск в Google обнаружил, что эта проблема возникла у других, но с гораздо более старыми версиями компонентов, которые я использую. Мои версии ...

Visual Studio SP1 9.0.30729.1
Microsoft.VisualStudio.TextTemplating 9.0.0.0
Microsoft.Practices.RecipeFramework.VisualStudio.Library 1.4.0.0

У меня установлены последние версии GAX, GAT и VS2008 SDK (все загружены и установлены сегодня).

Кто-нибудь имеет представление о том, что происходит, или как я мог бы продолжить расследование?

Я действительно хочу избежать необходимости использовать трассировщик для отслеживания стека вызовов, если это вообще возможно: (

1 Ответ

1 голос
/ 03 апреля 2009

Нашел ответ ...

Я ссылался на неправильную версию Microsoft.VisualStudio.TextTemplating сборки.

У меня на компьютере установлено две версии ...

  • 8.1.0.0
  • 9.0.0.0

Для конкретной версии Microsoft.Practices.RecipeFramework.VisualStudio.Library, которую я использовал, требовалась более ранняя из двух версий.

...