Exemplo n.º 1
0
 private void Initialize()
 {
     log             = package;
     traceController = package.GetService <STraceController, ITraceControllerInternal>();
     Assumes.Present(traceController);
     solutionBrowser = new DteSolutionBrowser(package.GetService <SDTE, EnvDTE.DTE>());
 }
Exemplo n.º 2
0
        public VsSolutionManager(
            ISolutionBrowser solutionBrowser,
            IVsMonitorSelection monitorSelection,
            IVsSolutionBuildManager solutionBuildManager,
            IDiagLog log)
        {
            ThreadHelper.ThrowIfNotOnUIThread();
            this.solutionBrowser      = solutionBrowser ?? throw new ArgumentNullException(nameof(solutionBrowser));
            this.monitorSelection     = monitorSelection ?? throw new ArgumentNullException(nameof(monitorSelection));
            this.solutionBuildManager = solutionBuildManager ?? throw new ArgumentNullException(nameof(solutionBuildManager));
            this.log = log ?? throw new ArgumentNullException(nameof(log));

            // Advise to selection events (e.g. startup project changed)
            monitorSelection.AdviseSelectionEvents(this, out selectionEventsCookie);

            // Advise to update solution events (e.g. switched debug/release configuration)
            solutionBuildManager.AdviseUpdateSolutionEvents(this, out updateSolutionEventsCookie);
        }
Exemplo n.º 3
0
        public SolutionTraceSettingsContext(ISolutionBrowser solutionBrowser = null)
        {
            this.solutionBrowser = solutionBrowser;

            ProjectsInSolution  = FindProjects();
            ManifestsInSolution = ThreadingExtensions.CreateAsyncLazy(FindManifests);

            manifestCache = new FileLruCache <EventManifest>(
                10, path => {
                var diags = new DiagnosticCollector();

                var parser   = EventManifestParser.CreateWithWinmeta(diags);
                var manifest = parser.ParseManifest(path);
                if (manifest == null || diags.Diagnostics.Count != 0)
                {
                    throw new Exception(
                        string.Join("\r\n", diags.Diagnostics.Select(x => x.Message)));
                }

                return(manifest);
            });
        }