Пример #1
0
 public void Dispose()
 {
     if (filesTracker != null)
     {
         foreach (var vsProjectFilesTracker in filesTracker.Values.Where(t => t != null))
         {
             DisposeFilesTracker(vsProjectFilesTracker);
         }
         filesTracker.Clear();
     }
     if (projectReferencesTracker != null)
     {
         projectReferencesTracker.Dispose();
         projectReferencesTracker = null;
     }
 }
Пример #2
0
        public override void Initialize()
        {
            var mainProject = vsProjectScope.Project;

            var bindingAssemblies = Enumerable.Empty <BindingAssemblyInfo>()
                                    .Append(new BindingAssemblyInfo(mainProject))
                                    .Concat(vsProjectScope.SpecFlowConfiguration.AdditionalStepAssemblies
                                            .Select(assembly => new BindingAssemblyInfo(assembly, mainProject)).ToArray().Where(ai => ai.Project != mainProject)).ToList();

            filesTracker = bindingAssemblies.ToDictionary(
                ai => ai,
                ai => ai.IsProject ? CreateFilesTracker(ai) : null);

            projectReferencesTracker = new VsProjectReferencesTracker(mainProject, vsProjectScope.DteWithEvents, vsProjectScope.Tracer);
            projectReferencesTracker.StartTracking();
            projectReferencesTracker.ReferenceChanged += ProjectReferencesTrackerOnReferenceChanged;
            projectReferencesTracker.ReferenceAdded   += ProjectReferencesTrackerOnReferenceChanged;
            projectReferencesTracker.ReferenceRemoved += ProjectReferencesTrackerOnReferenceRemoved;

            base.Initialize();
        }