internal AbstractGenerateNuGetPackageCommand CreateInstance(
            GeneratePackageOnBuildPropertyProvider generatePackageOnBuildPropertyProvider = null,
            IVsSolutionBuildManager2 buildManager = null,
            IVsUpdateSolutionEvents solutionEventsListener = null,
            bool isBuilding = false,
            bool cancelBuild = false)
        {
            var hierarchy = IVsHierarchyFactory.Create();
            var project = UnconfiguredProjectFactory.Create(hierarchy);
            var threadingService = IProjectThreadingServiceFactory.Create();
            buildManager ??= IVsSolutionBuildManager2Factory.Create(solutionEventsListener, hierarchy, isBuilding, cancelBuild);
            var serviceProvider = IVsServiceFactory.Create<SVsSolutionBuildManager, IVsSolutionBuildManager2>(buildManager);
            generatePackageOnBuildPropertyProvider ??= CreateGeneratePackageOnBuildPropertyProvider();

            return CreateInstanceCore(project, threadingService, serviceProvider, generatePackageOnBuildPropertyProvider);
        }
Beispiel #2
0
        public static IVsSolutionBuildManager2 Create(IVsUpdateSolutionEvents solutionEventsListener = null, IVsHierarchy hierarchyToBuild = null, bool isBuilding = false, bool cancelBuild = false)
        {
            var buildManager = new Mock <IVsSolutionBuildManager2>();

            solutionEventsListener = solutionEventsListener ?? IVsUpdateSolutionEventsFactory.Create();
            hierarchyToBuild       = hierarchyToBuild ?? IVsHierarchyFactory.Create();

            int isBusy = isBuilding ? 1 : 0;

            buildManager.Setup(b => b.QueryBuildManagerBusy(out isBusy))
            .Returns(VSConstants.S_OK);

            if (hierarchyToBuild != null)
            {
                int onBuildStartedWithReturn()
                {
                    solutionEventsListener.UpdateSolution_Begin(It.IsAny <int>());

                    if (cancelBuild)
                    {
                        solutionEventsListener.UpdateSolution_Cancel();
                    }
                    else
                    {
                        solutionEventsListener.UpdateSolution_Done(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>());
                    }

                    return(VSConstants.S_OK);
                }

                uint dwFlags = (uint)(VSSOLNBUILDUPDATEFLAGS.SBF_SUPPRESS_SAVEBEFOREBUILD_QUERY | VSSOLNBUILDUPDATEFLAGS.SBF_OPERATION_BUILD);
                buildManager.Setup(b => b.StartSimpleUpdateProjectConfiguration(hierarchyToBuild, It.IsAny <IVsHierarchy>(), It.IsAny <string>(), dwFlags, It.IsAny <uint>(), It.IsAny <int>()))
                .Returns(onBuildStartedWithReturn);
            }

            return(buildManager.Object);
        }
 /// <summary>
 /// The advise update solution events.
 /// </summary>
 /// <param name="sink">
 /// The sink.
 /// </param>
 /// <param name="pdwCookie">
 /// The pdw cookie.
 /// </param>
 /// <returns>
 /// The advise update solution events.
 /// </returns>
 public int AdviseUpdateSolutionEvents(IVsUpdateSolutionEvents sink, out uint pdwCookie)
 {
     this._eventSinks.Add(sink);
     pdwCookie = (uint)this._eventSinks.Count;
     return VSConstants.S_OK;
 }
 public int AdviseUpdateSolutionEvents(IVsUpdateSolutionEvents pIVsUpdateSolutionEvents, out uint pdwCookie) {
     throw new NotImplementedException();
 }
 public int AdviseUpdateSolutionEvents(IVsUpdateSolutionEvents sink, out uint pdwCookie)
 {
     _eventSinks.Add(sink);
     pdwCookie = (uint)this._eventSinks.Count;
     return(VSConstants.S_OK);
 }
Beispiel #6
0
 public int AdviseUpdateSolutionEvents(IVsUpdateSolutionEvents pIVsUpdateSolutionEvents, out uint pdwCookie)
 {
     throw new NotImplementedException();
 }