我想写一个ReSharper扩展,在每次构建后执行一个操作,所以我想我需要首先知道构建何时完成了解构建是否成功
关于如何做到这一点,有什么建议吗?
(我对做扩展完全陌生)提前感谢
您只需使用Visual Studio自己的事件即可。获取DTE
对象的实例并订阅OnBuildBegin
和OnBuildDone
事件。
您可以在Clippy ReSharper扩展中看到这一点。它订阅事件,并从对Shell.Instance.GetComponent<DTE>()
的调用中获取DTE
实例。
请注意,如何引用DTE
类型非常重要-它是COM引用,不应作为嵌入式PIA介绍类型引用,或者ReSharper的组件模型容器会将其视为与它所知道的DTE
实例不同的类型。相反,只需将其引用为非PIA类型:
<Reference Include="envdte, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<SpecificVersion>False</SpecificVersion>
<EmbedInteropTypes>False</EmbedInteropTypes>
<HintPath>....libenvdte.dll</HintPath>
</Reference>