Я создал проект VSIX для запуска шаблонов T4 во время сборки.
В настоящее время появляется несколько случаев, когда это не работает.При отладке я заметил, что свойство ProjectItem.Object
имеет значение null
, поэтому приведение к VSProjectItem
не работает и никакие пользовательские инструменты не выполняются.
public void ExecuteTemplate(ProjectItem template)
{
var ignoredTemplates = Settings.Default.IgnoreList;
//This cast fails because template.Object property is NULL
VSProjectItem templateVsProjectItem = (VSProjectItem)template.Object;
if (templateVsProjectItem != null)
{
if (ignoredTemplates != null && ignoredTemplates.Count > 0)
{
if (!ignoredTemplates.Contains(templateVsProjectItem.ProjectItem.Name))
{
templateVsProjectItem.RunCustomTool();
}
else
{
templateVsProjectItem.RunCustomTool();
}
}
else
{
if (!template.IsOpen)
{
var window = template.Open();
template.Save();
window.Close();
}
else
{
template.Save();
}
}
}
}
Что может быть причиной этого