У меня есть открытый документ в Visual Studio.Пока мой шаблон T4 работает, он пишет в исходный файл открытого документа.Когда шаблон T4 закончит это делать, я хочу, чтобы Visual Studio перезагрузила соответствующий документ из его источника.Шаблон T4 запускается автоматически при сохранении документа, который я хочу обновить.
Как я могу это сделать?Я пробовал команду «View.Refresh», но там написано «Недоступно».Я также попытался закрыть и снова открыть документ, но я получаю следующее исключение при его повторном открытии:
Error 3 Running transformation: System.Runtime.InteropServices.COMException (0x8004000C): User canceled out of save dialog (Exception from HRESULT: 0x8004000C (OLE_E_PROMPTSAVECANCELLED))
at EnvDTE.ProjectItem.Open(String ViewKind)
1 1
Я получил:
var hostServiceProvider = (IServiceProvider)Host;
EnvDTE.DTE dte = (EnvDTE.DTE)hostServiceProvider.GetService(typeof(EnvDTE.DTE));
var projectItem = dte.ActiveDocument.ProjectItem;
var activeDocument = dte.ActiveDocument;
dte.ActiveDocument.Close(EnvDTE.vsSaveChanges.vsSaveChangesNo); // vsSaveChanges value doesn't make a difference - still throws error
projectItem.Open(EnvDTE.Constants.vsViewKindPrimary);