【发布时间】:2016-01-01 14:51:34
【问题描述】:
我想编写一个 ReSharper 扩展,在每次构建后执行一个操作, 所以我想我需要首先知道构建何时完成以及 了解构建是否成功
关于如何做到这一点的任何提示?
(我对扩展完全陌生) 提前致谢
【问题讨论】:
标签: c# visual-studio resharper resharper-sdk
我想编写一个 ReSharper 扩展,在每次构建后执行一个操作, 所以我想我需要首先知道构建何时完成以及 了解构建是否成功
关于如何做到这一点的任何提示?
(我对扩展完全陌生) 提前致谢
【问题讨论】:
标签: c# visual-studio resharper resharper-sdk
您可以为此使用 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>
【讨论】: