gpt4 book ai didi

c# - 在 Visual Studio 中 Hook 构建过程

转载 作者:行者123 更新时间:2023-11-30 19:59:43 27 4
gpt4 key购买 nike

我正在编写一个 Visual Studio 扩展,它允许编辑项目中特定类型的文件。此文件用作进一步自动代码生成的描述(类似于 Entity Framework)。

我需要在构建项目之前执行代码生成,其中包含描述文件。代码生成算法(当前)放在描述文件的编辑器中。

有没有办法在实际构建项目之前 Hook 构建过程以自动执行一些额外的步骤?

最佳答案

您可以使用 EnvDTE.Events.BuildEvents.OnBuildBeginOnBuildDone

请注意,每次您说 dte.Events.BuildEvents 时,您都会在后台创建一个新的 COM 对象,即使您仍然有一个事件监听器,它也会被垃圾收集。因此,在将事件处理程序附加到它之前,将 BuildEvents 对象保存到某处的成员变量中(这样它就不会在您使用它时被垃圾收集)。

如果您厌倦了 EnvDTE,您还可以实现 Microsoft.VisualStudio.Shell.Interop.IVsBuildStatusCallback(并通过 AdviseBuildStatusCallback 将其挂接到 VS 中):P

编辑:两者都在 UI 线程上运行,但经过进一步思考,我认为此时修改构建本身可能为时已晚(MSBuild 可能已经发送了文件和开始异步构建)。我不确定。

关于c# - 在 Visual Studio 中 Hook 构建过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23243164/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com