VS 2012 でプラグインを作成しました。このプラグイン ソリューションには、T4 テンプレートも含まれています。t4 テンプレートがプラグイン ソリューションにも存在する場合、プラグインのクリックで t4 テンプレートを実行するロジックを実装しました。
問題は、T4 テンプレートをプラグインに埋め込む方法です。これにより、これらのテンプレート ファイルを含まない他のソリューションでこのプラグインを使用すると、プラグイン テンプレートのクリック時にも実行され、出力ファイルが生成されます。私が使用しているコードスニペットを添付しています。
var dte = Marshal.GetActiveObject("VisualStudio.DTE.11.0") as EnvDTE80.DTE2;
Solution sol = ((DTE)dte).Solution;
string strFileName = string.Empty;
foreach (Project project in sol.Projects)
{
foreach (ProjectItem item in project.ProjectItems)
{
if (item.Name.Contains(".tt"))
{
VSLangProj.VSProjectItem itemobj =(VSLangProj.VSProjectItem)item.Object;
itemobj.RunCustomTool();
}
}
}
投稿者:シヴァニ・スリバスタヴァ