Tag: vs extensibility

有没有一种方法可以将外部进程的结果流式传输到Visual Studio输出窗格?

我在VsPackage设置了一个自定义输出窗格,类似于以下内容: ///——————————————————————————– /// This property gets the custom output pane. ///——————————————————————————– private Guid _customPaneGuid = Guid.Empty; private IVsOutputWindowPane _customPane = null; private IVsOutputWindowPane customPane { get { if (_customPane == null) { IVsOutputWindow outputWindow = GetService(typeof(SVsOutputWindow)) as IVsOutputWindow; if (outputWindow != null) { // look for existing solution updater pane if (_customPaneGuid == Guid.Empty || […]

Visual Studio 2010的HWnd

有没有办法从VSIX扩展中获取到Visual Studio 2010顶部窗口的HWnd指针? (我想改变窗口的标题)。

几何对象的可视调试器

在处理代表几何对象的库时,Debugging目前看起来像这样: 在这里,我正在查看Autos , Locals , Watch和Immediate窗口中的局部变量。 由于我无法在脑海中想象物体的形状,我宁愿使用图形组件来表示这些物体。 所以我开始创建一个Debugger Visualizer来绘制对象。 我在这里的 bitbucket上有一个公共回购。 现在我无法让它在我在解决方案中使用的控制台应用程序之外工作。 我究竟做错了什么? 这是它工作时的样子: 另外,如何以允许我一次查看多个对象的方式执行此操作。 我意识到我真的想看到多个对象及其交互,而不仅仅是单个对象。 (例如,寻找交叉路口等)。 PS 有没有人在这样的地方看到调试器扩展? 或者有任何关于如何修复现有的建议? 我试图以Visual Studio扩展的forms尝试这一点,但也没有成功。 有关详细信息,请参阅此问题 。

如何使用vs package获取解决方案资源管理器中所选项的详细信息

我正在尝试创建一个VS包,其中,我在右键单击解决方案资源管理器中的项目时为上下文菜单添加了一个菜单命令。 现在,在单击命令时,我想显示一个弹出窗口,其中包含您右键单击的项目的详细信息,然后选择我的命令。 我怎么能完成它? 我可以用什么服务来获取所选项目的详细信息?

如何通过VSPackage取消ToolWindowPane或Visual Studio IDE关闭操作?

我有一个VSPackage ,其中包含一个包含表单数据的可停靠工具窗口。 如果此表单中有未保存的更改,我想取消关闭工具窗口和Visual Studio IDE,如果用户在关闭前单击取消保存更改。 我可以在关闭时执行保存测试,但是我没有看到任何事件处理程序方法或其他选项来实际取消关闭。 这是包装中的一些模糊: private DTE2 _applicationObject = null; ///——————————————————————————– /// This property gets the visual studio IDE application object. ///——————————————————————————– public DTE2 ApplicationObject { get { if (_applicationObject == null) { // Get an instance of the currently running Visual Studio IDE DTE dte = (DTE)GetService(typeof(DTE)); _applicationObject = dte as DTE2; […]

完成保存文件后运行脚本 – Visual Studio可扩展性

有人可以给我一些Visual Studio Extensibility的示例代码,我可以从文档中获取文本,当Save事件结束时,并使用该文本在C#中运行脚本(例如,为某些文件扩展名触发Web服务)。 它也可以是一个新按钮(例如,保存在Web服务中)。

DTE2事件不会触发

在尝试开发我的第一个VS Addin时,我遇到了解雇DTE2事件的问题。 基本上,DocumentOpened和LineChanged事件由于某种原因不会触发。 我错过了什么重要的部分? namespace TestAddin { public class Connect : IDTExtensibility2 { private AddIn _addInInstance; private DTE2 _applicationObject; public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom) { _applicationObject = (DTE2) application; _addInInstance = (AddIn) addInInst; _applicationObject.Events.DocumentEvents.DocumentOpened += InitializeFoldingOnDocument; _applicationObject.Events.TextEditorEvents.LineChanged += UpdateFoldingOnDocument; } private void UpdateFoldingOnDocument(TextPoint startpoint, TextPoint endpoint, int hint) { […]

以编程方式从addins获取当前的Visual Studio IDE解决方案目录

我有一些工具可以在.NET解决方案上执行更新,但是他们需要知道解决方案所在的目录。 我将这些工具添加为外部工具,它们出现在IDE工具菜单中,并提供$(SolutionDir)作为参数。 这很好用。 但是,我希望通过自定义顶级菜单(我为其创建Visual Studio集成包项目)以及通过解决方案节点上的上下文菜单(我为其创建了一个Visual),在IDE中为用户更轻松地访问这些工具。 Studio加载项目)。 我正在寻找一种方法来通过这些上下文获取当前的解决方案目录。 我尝试从VisualStudio.DTE对象获取解决方案信息: EnvDTE.DTE dte = (EnvDTE.DTE)System.Runtime.InteropServices.Marshal.GetActiveObject(“VisualStudio.DTE”); string solutionDir = System.IO.Path.GetDirectoryName(dte.Solution.FullName); 但是,这将返回add ins的解决方案目录,而不是当前解决方案。 我尝试回显$(SolutionDir)并将其读回: System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo(“cmd”, “echo $(SolutionDir)”); // The following commands are needed to redirect the standard output. // This means that it will be redirected to the Process.StandardOutput StreamReader. procStartInfo.RedirectStandardOutput = true; procStartInfo.UseShellExecute = false; […]

如何从VSPackage获取当前解决方案目录?

以下是如何从加载项获取当前解决方案目录: _applicationObject = (DTE2)application; // retrieved from OnConnection method string solutionDir = System.IO.Path.GetDirectoryName(_applicationObject.Solution.FullName); 你会如何通过VSPackage做到这一点? 我正在将可视工作室加载项迁移到VSPackage,因为我打算添加一些需要与IDE进行更深入集成的用户控件。 我发现了一些关于加载项与集成包的相对优点的一些很好的参考,例如: http : //nayyeri.net/visual-studio-addin-vs-integration-package-part-1 以及关于VSPackages上msdn的一些很好的教程,例如: http : //msdn.microsoft.com/en-us/library/cc138589.aspx 我还没有找到关于加载项(例如DTE)中的更高级接口如何映射到VSPackage中的低级接口的良好引用(在msdn或其他方面)。 有什么好的参考资料可以帮助实现从附加接口到VSPackage接口的一般映射?