Quantcast
Channel: Visual Studio Integrate forum
Viewing all articles
Browse latest Browse all 4410

Listening to build events: how to determine the type of the build currently being run?

$
0
0

Determining what kind of build (clean/build/rebuildall) is currently being performed is easy with DTE2.BuildEvents:

DTE2 dte = ...;
dte.Events.BuildEvents.OnBuildBegin += new _dispBuildEvents_OnBuildBeginEventHandler(OnSolutionBuildBegin);

void OnSolutionBuildBegin(vsBuildScope Scope, vsBuildAction Action)
{
    // Do something only if this is a build, not a clean
    if (action != EnvDTE.vsBuildAction.vsBuildActionBuild && action != EnvDTE.vsBuildAction.vsBuildActionRebuildAll)
        //  return;
    ...
}

How to do the same from a package? For some reason I absolutely need to use IVsUpdateSolutionEvents2 interface, so I'm doing this:

IVsSolutionBuildManager2 solutionBuildManager = ...;

solutionBuildManager.AdviseUpdateSolutionEvents(this /*IVsUpdateSolutionEvents2*/, out cookieUpdateSolutionEvents2);

public int UpdateSolution_Begin(ref int pfCancelUpdate)
{
    // How to figure out the build type here (EnvDTE.vsBuildAction or some other Clean/Build/RebuildAll enum)?
}

public int UpdateSolution_StartUpdate(ref int pfCancelUpdate)
{
    // Or here?
}

Thanks in advance for help.


Viewing all articles
Browse latest Browse all 4410

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>