c#VS 2015包最近由GetService和Dte(2).GetObject获取null而没有更改代码

时间:2016-09-20 08:44:03

标签: c# visual-studio vspackage vs-extensibility

我在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

1 个答案:

答案 0 :(得分:0)

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

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

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