我创建了一个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();
}
}
}
}
这可能是什么原因?