【问题标题】:VS2010 extensibility: how to do custom actions on pressing F5VS2010 可扩展性:如何在按 F5 时执行自定义操作
【发布时间】:2012-06-17 10:33:36
【问题描述】:

我需要为自定义项目模板实现某种可扩展性。

打开一个 C# 代码文件,如果...:

  • ...当前项目有一些特定的类型 id。
  • ...代码文件是一个类,继承了一些具体的基类。
  • ...用户按下 F5。

...我想...:

  • ...启动任意程序(控制台应用程序)
  • ...将 Visual Studio 附加到任意程序的进程
  • ...调试

实际上我完全迷路了,我不知道该怎么做。我知道我需要 Visual Studio 2010 SDK,但我不知道如何创建一个扩展来完成我需要实现的目标。

提前谢谢你。

更新

我正在 Stackoverflow 问答中做一些研究,我将添加与我自己的问题相关的问题:

【问题讨论】:

    标签: c# visual-studio-2010 visual-studio .net-4.0 visual-studio-extensions


    【解决方案1】:

    我想最好的尝试方法是 VS 插件,它将捕获运行 (F5) 命令并按照您的意愿处理它。请参阅本文作为从 VS 插件捕获命令的起点:How to: Add and Handle Commands。这些用于从 VS addin Attach to process for laziesVisual Studio Add-In To Automatically Attach to Development Server 附加到进程

    希望这有助于找到满足您需求的解决方案。

    【讨论】:

    • 看来它可以帮助我实现目标。我的问题中最难的部分是 “...代码文件是一个类并继承了一些具体的基类。” 这似乎以某种方式操纵文档窗口,但我不知道如何获取类命名空间,名称及其基类。
    • 了解 Roslyn - 也许这就是你需要使用的 - msdn.microsoft.com/en-US/roslyn
    • Roslyn 更多的是关于编译。
    • 好吧,在这种情况下,我猜你需要自己解析 C# 文件。
    • 希望我能找到一些开源解析器..!
    【解决方案2】:

    您是否考虑使用第三方扩展,例如免费的DXCore Visual Studio 扩展框架?它可以满足您的需求。

    【讨论】:

    • 是的,我知道它并且正在考虑它,但是作为 Visual Studio 可扩展性之上的一层并且它没有源代码,我不喜欢使用它。但既然选择不多,也许,为什么不呢?
    【解决方案3】:

    首先感谢大家提供的信息,它很有用。

    基本上我有办法去做我想要实现的目标。

    因为我想帮助处于类似情况的其他人,所以我想分享一下我用来解决所有问题的方法:

    • NRefactory 作为 C# 代码解析器。 它就像一个魅力!您可以从代码文件中获取大量信息。

    • VSPackage Visual Studio 2010 SDK 项目模板。

    • 为了附加到流程中,我期待 Dmitry Pavlov 的建议。

    有趣的链接:

    一切正常后,我将编辑此答案并提供更详细的信息。

    【讨论】:

    • 能否分享使用VSPackage按下F5时如何实现自定义动作。 I'm facing such an issue,我得在编译前检查错误的数量。
    • @JerricLynsJohn 我可以查找代码,但是我已经很久没有遇到这个问题了...... :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 2011-05-16
    • 2012-09-03
    相关资源
    最近更新 更多