标签: vsx

订阅DTE事件似乎不起作用 - 事件不会被调用

我在包中做了一个扩展,我调用了下面的代码(当用户按下工具栏中的按钮时发生):

DocumentEvents documentEvents = (DTE2)GetService(typeof(DTE));
_dte.Events.DebuggerEvents.OnEnterBreakMode += DebuggerEvents_OnEnterBreakMode;
_dte.Events.DebuggerEvents.OnEnterDesignMode += DebuggerEvents_OnEnterDesignMode;
_dte.Events.DebuggerEvents.OnContextChanged += DebuggerEvents_OnContextChanged;
_dte.Events.DocumentEvents.DocumentSaved += new _dispDocumentEvents_DocumentSavedEventHandler(DocumentEvents_DocumentSaved);
_dte.Events.DocumentEvents.DocumentOpened += new _dispDocumentEvents_DocumentOpenedEventHandler(DocumentEvents_DocumentOpened);
void DocumentEvents_DocumentOpened(Document Document)
{
}

void DocumentEvents_DocumentSaved(Document Document)
{
}

void DebuggerEvents_OnEnterBreakMode(dbgEventReason Reason, ref dbgExecutionAction ExecutionAction)
{
}

void DebuggerEvents_OnContextChanged(Process NewProcess, Program NewProgram, Thread NewThread, StackFrame NewStackFrame)
{
}

private void DebuggerEvents_OnEnterDesignMode(dbgEventReason reason)
{
}
Run Code Online (Sandbox Code Playgroud)

第一个和主要问题是订阅该事件不起作用.我试过了:

  • 打开新文件
  • 从调试中分离(因此可能会触发OnEnterDesignMode
  • 保存文档

这些似乎都没有任何效果,并且从不调用回调函数.

第二个问题是对事件行的订阅是USUALLY(订阅本身,回调不能像上面描述的那样工作)但是在运行订阅行一段时间之后,例如:

_dte.Events.DebuggerEvents.OnEnterBreakMode -= DebuggerEvents_OnEnterBreakMode;
Run Code Online (Sandbox Code Playgroud)

导致异常:

Exception occured!
System.Runtime.InteropServices.InvalidComObjectException: COM object that has been separated from its underlying RCW …
Run Code Online (Sandbox Code Playgroud)

vsx visual-studio-2010 visual-studio

12
推荐指数
2
解决办法
2017
查看次数

领域特定语言资源

我只是在听一些较旧的.Net Rocks!剧集,我发现DSL上的#329很有趣.我的问题是,我找不到任何好的在线资源,让人们试图学习这项技术.我得到了创建新设计师的基础知识,但缺乏使用DSL工具使用的T4引擎的MS文档,以及如何将模板与DSL模型集成.

有谁知道MS DSL工具的一些很好的入门资源?

dsl t4 vsx

11
推荐指数
1
解决办法
1105
查看次数

是否可以从VS2010插件刷新WCF服务引用?

我想在VS2010插件中"模拟"右键单击/更新服务引用命令.我有一个包含(Silverlight ...)项目的引用,我知道服务引用的名称和服务的url.
我发现了这个:http://dedjo.blogspot.com/2007/03/adding-web-references-to-your-vs.html,但它只适用于asmx(它使用System.Web.Services而不是System.ServiceModel),而不是wcf.有什么选择,但从代码调用svcutil?如果是这样,怎么样?(我使用svcutil还是slsvcutil?我如何从插件中调用它?)
谢谢

wcf vsx add-in visual-studio-2010

10
推荐指数
1
解决办法
3010
查看次数

在2010年取消"无源可用"窗格

精氨酸!我有一个运行我的类库项目的自定义"harness"可执行文件.每次我进入线束的代码,我都会弹出"No Source Available"窗格.据我所知,没有可用的资源,并且这是完全可以预期的,我不希望每次都会出现这个非常具有侵入性和无用的窗格.我怎么能完全抑制它呢?

我可以使它变小,至少使该窗口成为另一个较小的窗格集的一部分,例如使用watch/locals.它记得它从一开始到另一个运行的位置,但它仍然无用.

这个问题可能有一个更一般的答案 - 如何抑制任何特定的窗格/窗口显示?我有一个VSX软件包,最初是为VS 2008构建的(并且必须保持兼容性),但我只是不知道要运行什么命令来执行它.(我有包装委托,所以我有源,但不是技术诀窍.这看起来像一个/两个班轮).

谢谢!

vsx visual-studio-2010 vspackage

9
推荐指数
2
解决办法
590
查看次数

Visual Studio加载项,用于验证string.Format方法

string.Format是一种非常危险的方法.有很多东西可能出错,没有任何编译错误:

string.Format("{0{", text);
string.Format("{1}", text);
string.Format("(0)", text);
string.Format("{0}", text1, text2);
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种在编译时找到这个问题的方法.如果我没记错的话,Resharper发现了一些错误,但它对我的血液来说太丰富了.

c# vsx string-formatting visual-studio

9
推荐指数
1
解决办法
1118
查看次数

VSX:如何重用现有的XML编辑器来处理转换为XML的二进制文件?

我正在尝试为VS2017(在C#中)创建扩展VSPackage,它将二进制数据转换为XML,在默认的VS XML编辑器和XML语言服务中打开它,然后在保存时将其转换回二进制.

但是,我有麻烦要确定这需要哪些步骤.在编辑器工厂中创建新编辑器时,我现在想到了以下内容:

  • 创建新的文本缓冲区
  • 用转换的XML数据提供它
  • 创建核心编辑器
  • 用文本缓冲区提供它

现在我的尝试看起来像这样:

private MyPackage _package; // Filled via constructor
private IServiceProvider _serviceProvider; // Filled via SetSite

public int CreateEditorInstance(uint grfCreateDoc, string pszMkDocument, string pszPhysicalView,
    IVsHierarchy pvHier, uint itemid, IntPtr punkDocDataExisting, out IntPtr ppunkDocView,
    out IntPtr ppunkDocData, out string pbstrEditorCaption, out Guid pguidCmdUI, out int pgrfCDW)
{
    // Initialize and validate parameters.
    ppunkDocView = IntPtr.Zero;
    ppunkDocData = IntPtr.Zero;
    pbstrEditorCaption = String.Empty;
    pguidCmdUI = Guid.Empty;
    pgrfCDW = 0;
    VSConstants.CEF createDocFlags = (VSConstants.CEF)grfCreateDoc;
    if (!createDocFlags.HasFlag(VSConstants.CEF.OpenFile) && !createDocFlags.HasFlag(VSConstants.CEF.Silent)) …
Run Code Online (Sandbox Code Playgroud)

c# vsx visual-studio vs-extensibility visual-studio-extensions

9
推荐指数
1
解决办法
230
查看次数

Visual Studio 2010可扩展性入门 - 3个问题

1.)"VSIX"项目的"Visual Studio Package"项目有何不同?

2.)哪里可以找到一些初学者指南?

3.)在哪里可以找到Visual Studio 2010的可扩展性模型或扩展点的概述?

提前致谢!

vsx visual-studio-2010 visual-studio

8
推荐指数
1
解决办法
1927
查看次数

如何向Visual Studio 2012添加命令?

如何将自定义命令添加到键盘对话框(工具 - >选项 - >键盘)以通过快捷方式触发它们?不幸的是,我在网上找不到任何资源.

我浏览了这篇博文,但它略有不同,因为我必须创建一个菜单条目.我只想在键盘对话框中显示命令.就像它与宏一起工作一样.

vsx visual-studio-2012

8
推荐指数
1
解决办法
2190
查看次数

在自定义Visual Studio语言服务中支持用户指定的文件扩展名

我正在开发一个自定义的Visual Studio语言服务,并且有几个关于文件扩展名绑定到特定语言服务的方式的问题.

"示例语言"语言的源文件有两个主文件扩展名:.e1.e2.我的分机有一类ExampleLanguagePackage延伸Package.

  1. 当您使用文件→打开命令并选择一个C#文件(例如)时,"打开"按钮有一个下拉箭头,您可以选择"打开方式...".单击该按钮时,将显示"CSharp Editor(默认)","带编码的CSharp Editor"或任何其他选项中打开文件的选项.如何为我的语言提供类似的功能,提供"示例语言(默认)"和"带编码的示例语言"选项?

  2. 当您打开工具→选项...→文本编辑器→文件扩展名时,您可以将(例如).foo扩展名绑定到"Microsoft Visual C#"或任何其他几个选项.如何扩展此页面以允许用户定义的文件扩展名与"示例语言"相关联?

  3. 注册这些物品时我还应该注意什么?

vsx visual-studio languageservice

8
推荐指数
1
解决办法
2725
查看次数

获取cshtml文件的SemanticModel?

我想使用Roslyn来分析Razor View中一块C#代码的上下文中的语义信息.

有没有办法(在Visual Studio 2015中,甚至在单元测试中)获得SemanticModel代表此代码的代码?

c# vsx roslyn

7
推荐指数
3
解决办法
1275
查看次数