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