如何在 ReSharper 扩展中获得构建的结果
Posted
技术标签:
【中文标题】如何在 ReSharper 扩展中获得构建的结果【英文标题】:How can I get the outcome of a Build in a ReSharper Extension 【发布时间】:2016-01-01 14:51:34 【问题描述】:我想编写一个 ReSharper 扩展,在每次构建后执行一个操作, 所以我想我需要首先知道构建何时完成以及 了解构建是否成功
关于如何做到这一点的任何提示?
(我对扩展完全陌生) 提前致谢
【问题讨论】:
【参考方案1】:您可以为此使用 Visual Studio 自己的事件。获取DTE
对象的实例并订阅OnBuildBegin
和OnBuildDone
事件。
您可以在 Clippy ReSharper 扩展中看到这一点。它subscribes to the events,并从the call to Shell.Instance.GetComponent<DTE>()
获取DTE
实例。
请注意,如何引用 DTE
类型非常重要 - 它是一个 COM 引用,不应作为 Embedded PIA 介绍类型引用,否则 ReSharper 的组件模型容器会将其视为与 @ 不同的类型它知道的 987654330@ 实例。相反,只需将其引用为non-PIA type:
<Reference Include="envdte, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<SpecificVersion>False</SpecificVersion>
<EmbedInteropTypes>False</EmbedInteropTypes>
<HintPath>..\..\lib\envdte.dll</HintPath>
</Reference>
【讨论】:
谢谢,我会研究一下,不过我希望能更简单一些。以上是关于如何在 ReSharper 扩展中获得构建的结果的主要内容,如果未能解决你的问题,请参考以下文章
如何为 ReSharper 扩展找到正确版本的“Wave”?