ProjectItem.Object在某些情况下为null,无法运行自定义工具

时间:2019-04-16 13:11:53

标签: c# visual-studio-extensions

我创建了一个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();
            }
        }
    }
}

这可能是什么原因?

0 个答案:

没有答案