Вот как вы можете получить активные IVsBuildableProjectCfg
для данного IVsHierarchy
, который я называю ppHierarchy
ниже:
IVsSolutionBuildManager buildManager = (IVsSolutionBuildManager)GetService(typeof(SVsSolutionBuildManager));
IVsProjectCfg[] ppIVsProjectCfg = new IVsProjectCfg[1];
buildManager.FindActiveProjectCfg(IntPtr.Zero, IntPtr.Zero, ppHierarchy, ppIVsProjectCfg);
IVsBuildableProjectCfg ppIVsBuildableProjectCfg;
ppIVsProjectCfg[0].get_BuildableProjectCfg(out ppIVsBuildableProjectCfg);
Затем вы можете подписаться на события сборки, используя:
uint pdwCookie;
ppIVsBuildableProjectCfg.AdviseBuildStatusCallback(new MyBuildStatusCallback(), out pdwCookie);
Где MyBuildStatusCallback
- это созданный вами объект, который реализует IVsBuildStatusCallback
.
Надеюсь, это поможет!