一些信息:我正在使用 .Net 4.5,并尝试扩展Visual Studio 2013
.
这行代码工作正常,我得到一个对象
object vce = dte2.GetObject("Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt");
类型是,根据观察窗口:
Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt
但是,当我尝试使用此语句强制转换为这种类型时
VersionControlExt vceCast = vce as Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt;
我越来越空
奇怪的部分:
当我尝试在监视窗口上投射时,我收到了这个搞笑的错误消息:
The type 'Microsoft.VisualStudio.TeamFoundation.VersionControl.VersionControlExt' exists in both
'Microsoft.VisualStudio.TeamFoundation.VersionControl.dll' and 'Microsoft.VisualStudio.TeamFoundation.VersionControl.dll'
如您所见 - 它是同一个DLL!
我试过用dynamic
,然后我得到了RuntimeBinderInternalCompilerException An unexpected exception occurred while binding a dynamic operation
。
我正在使用的参考文献列表:
我的结论:
我很确定这是由于我使用了一些错误的引用而发生的。知道如何找到它们吗?
附带问题:如何遍历 COM 对象(如 DTE/DTE2)以获取有关“活动”实例及其属性的信息?