1
上运行T4如何通过插件在项目中运行T4文件?任何提示/线索?我发现EnvDte文档特别缺乏。VIsual Studio插件在Build
我得到这个解决方案,因为我需要在构建事件上运行我的T4模板。我不想在每次更改时手动运行自定义工具。我不能从命令行运行它,因为T4脚本具有对DTE对象的引用,并且在从cmd运行时它只是禁止出口。
我也考虑过使用宏,但宏在VS2012上不可用,并且在我的本地机器上有一个错误,它阻止了我启动宏IDE。所以这不是一个好的短期/长期解决方案。
最好的解决方案似乎编写自己的插件来运行构建T4文件。这是据我得到:
public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_applicationObject = (DTE2)application;
_addInInstance = (AddIn)addInInst;
_applicationObject.Events.BuildEvents.OnBuildBegin += customBuildHander;
}
void customBuildHander(vsBuildScope Scope, vsBuildAction Action)
{
if (Scope == vsBuildScope.vsBuildScopeProject)
{
//Need to run steps 1 thru 3 here!
}
}
我需要符合以下例程在上面的代码以某种方式:
- 查找项目
- 运行T4在TT所有T4文件文件,同时传递DTE对象,以便它们可以从T4文件访问
- 同时声明环境变量(如$(ProjectDir),以便它们可以在T4脚本中读取< - 我不知道这是否与DTE或是一个独立的过程。
请帮忙!
我认为vscommands有一个选项可以做到这一点? –
你见过http://stackoverflow.com/questions/1646580/get-visual-studio-to-run-a-t4-template-on-every-build –
@AlexeiLevenkov是的,尝试了所有这些,但我的t4脚本barfs在所有的DTE和环境变量参考。 – Alwyn