1

Microsoft.VisualStudio.TextTemplating.EngineVS 2008 SDK のクラスを名前空間のオブジェクトと共に使用してMicrosoft.Practices.RecipeFramework.VisualStudio.Library.Templates、T4 テンプレートから C# クラスを作成するプロセスを自動化しています。

ここに私のコード。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);
    }
  }
}

問題

System.EntryPointNotFoundExceptionテンプレートが処理され、出力コード ファイルが返される必要がある時点でを取得します...

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

この例外は、コンポーネントのバージョンの不一致がどこかにあることを示唆しており、グーグルは、この問題が他の人によって経験されていることを明らかにしましたが、私が使用しているコンポーネントのバージョンははるかに古いものです。私のバージョンは...

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 の最新バージョンを持っています (すべて今日ダウンロードしてインストールしました)。

何が起こっているのか、またはさらに調査する方法を知っている人はいますか?

可能であれば、トレーサーを使用してコールスタックをたどる必要がないようにしたいです:(

4

1 に答える 1

1

答えを見つけた...

間違ったバージョンのMicrosoft.VisualStudio.TextTemplatingアセンブリを参照していました。

私のマシンには2つのバージョンがインストールされていました...

  • 8.1.0.0
  • 9.0.0.0

私が使用していた の特定のバージョンでMicrosoft.Practices.RecipeFramework.VisualStudio.Libraryは、2 つのバージョンのうち前のバージョンが必要でした。

于 2009-04-03T11:47:08.723 に答える