c# VS 2015 Package 最近通过 GetService 和 Dte(2).GetObject 获得空值,而无需更改代码

c# VS 2015 Package recently getting null by GetService and Dte(2).GetObject without changes in the code

我在 VS (2015) 包中使用以下属性:

    public DTE Dte
    {
        get
        {
            return GetService(typeof(DTE)) as DTE;
        }
    }

    public ITeamFoundationContextManager TeamExplorer
    {
        get
        {
            return GetService(typeof(ITeamFoundationContextManager)) as ITeamFoundationContextManager;
        }
    }

    public DocumentService DocService
    {
        get
        {
            return Dte.GetObject("Microsoft.VisualStudio.TeamFoundation.WorkItemTracking.DocumentService")
            as DocumentService;
        }
    }

第一个 (Dte) 似乎工作正常并且 return 是一个 DTE 对象。 第二个 (TeamExplorer) 总是 return null, 就像第三个 属性 (DocService).

问题是,我(而不是其他人)没有签入自上次发布版本以来的任何更改。最后一个发布版本仍然适用于安装,但如果我重建它,就会出现 null 值问题。

这个问题也出现在同事的机器上。 我的扩展工具版本是:1.10.183

我不知道为什么,但是 VS/TFS 中的某些机制或我自己更改了项目的

<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>

到 12.0 并将程序集更改为较低版本 (12.x)。 在我更改项目文件并将程序集与 14.x 版本交换后,一切正常。