c# VS 2015包最近被GetService和Dte(2)返回null.GetObject,而无需更改代码

本文关键字:GetObject null 代码 返回 最近 2015包 VS GetService Dte | 更新日期: 2023-09-27 18:08:02

我在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)似乎工作得很好,返回一个Dte对象。第二个(TeamExplorer)总是返回null,就像第三个属性(DocService)。

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

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

c# VS 2015包最近被GetService和Dte(2)返回null.GetObject,而无需更改代码

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

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

更改为12.0,并将程序集更改为较低版本(12.x)。一切工作后,我改变了项目文件(s)和14交换的程序集。x版本。