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 版本交换后,一切正常。
我在 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 版本交换后,一切正常。