草庐IT

c# - VSIX:获取 DTE 对象

我的VisualStudio程序包需要使用EnvDTE.DTE变量,但返回时始终为空。在阅读了许多hack之后,他们都说使用OnShellPropertyChange()方法(IVsShellPropertyEvents),但有时它永远不会触发-就好像我的扩展永远不会完成加载一样。我正在使用VS2010并检查VSSPROPID_Zombie和ShellInitialized-没有工作。:(有什么想法吗?这是我正在使用的代码:publicintOnShellPropertyChange(intpropid,objectvar){if(propid==-9053||(int)__VSSPR

c# - 在 DTE.ActiveDocument 更改时收到通知

我正在编写VisualStudio2008扩展。我想在每次DTE.ActiveDocument更改时收到通知,因此我可以在自定义面板中更新某些内容,该面板执行与解决方案资源管理器类似的功能。我还没有找到发生这种情况时发生的任何事件。有这样的事件吗?具体来说,我正在寻找类似的东西:vardte=GetService(typeof(EnvDTE._DTE))asEnvDTE.DTE;dte.Events.DTEEvents.ActiveDocumentChanged+=s=>{//impliesdte.ActiveDocumenthaschangedvalue}

c# - 如何获取运行 Visual Studio 实例的 DTE?

如何获取所有正在运行的VisualStudio实例以便我可以执行自动化?(添加此问题是因为thisone已关闭) 最佳答案 使用运行对象表获取所有实例,然后选择你想要的。我认为没有比这更好的了。它类似于将调试器附加到VS实例的方式。您必须从列表中选择一个。IEnumerableGetInstances(){IRunningObjectTablerot;IEnumMonikerenumMoniker;intretVal=GetRunningObjectTable(0,outrot);if(retVal==0){rot.EnumRunn

c# - 在 Visual C# 2010 中获取 DTE2 对象的引用

我想获得对当前解决方案的引用,在VisualStudio2010中使用DTE2对象和C#。我首先尝试了以下代码:vardte=Marshal.GetActiveObject("VisualStudio.DTE.10.0")asEnvDTE80.DTE2;但是当我打开2个解决方案并且此代码在第一个解决方案中时,我得到的不是对当前解决方案的引用,而是对我加载的最后一个解决方案的引用。我需要当前的解决方案...在网上搜索,在HowdoyougetthecurrentsolutiondirectoryfromaVSPackage?中找到了以下解决方案://Getaninstanceofthec

c# - DTE2 事件不触发

在尝试开发我的第一个VS插件时,我在触发DTE2事件时遇到了问题。基本上,DocumentOpened和LineChanged事件由于某种原因不会触发。我错过了什么重要的部分?namespaceTestAddin{publicclassConnect:IDTExtensibility2{privateAddIn_addInInstance;privateDTE2_applicationObject;publicvoidOnConnection(objectapplication,ext_ConnectModeconnectMode,objectaddInInst,refArraycus

如何理解UART中DTE和DCE设备(模式) 这样就可以理解UART流控了

要想理解什么是DTE和DCE以及CTS、RTS的流控,那么我们要回到远古时代,现在都是用网口(RJ45)上网的,你经历过用串口(DB9、DB25)上网的年代吗?DTE(dataterminalequipment)是数据终端设备。例如电脑,打印机。这种设备一般用公头DB9/DB25连接器。DCE(datacommunicationequipment)是数据通讯设备。例如调制解调器。这种设备上一般用母头DB9/DB25连接器。下图就是一个串口的调制解调器,用了DB25的母口。之所以定义DCE和DTE两种设备(或者模式),是为了区分串口通信中各个信号的方向。以DB9串口为例,信号方向定义如下。仔细看

c# - 什么是 Visual Studio DTE?

我一直在慢慢研究VisualStudio的SDK,但还不能弄清楚DTE代表什么。这是一个愚蠢的问题,但我似乎真的找不到它。DTE非常有用,如果知道它是什么,那就太酷了。 最佳答案 它代表开发工具环境。他们似乎没有太多提及,我在MSDN上唯一能找到的页面说它代表什么是thisone. 关于c#-什么是VisualStudioDTE?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1

c# - 从 DTE 访问属性信息

我编写了如下代码:[Attrib(typeof(MyCustomType))]publicclassTargetType{//.....}我想使用EnvDTE获取对typeof引用的CodeElement的引用。我知道如何获取对属性参数的引用,并且我可以使用Value,但这给了我字符串typeof(MyCustomType)。如果我使用Value,我必须分解字符串然后尝试找到类型,如果有两个名称相同但命名空间不同的类型,这会变得很麻烦。有更简单的方法吗? 最佳答案 Isthereaneasierwaytodothis?不,我不这么认