コード例 #1
0
        private static IExportProviderFactory CreateEditorExportProviderFactory()
        {
            AssemblyLoader.EnsureLoaded(
                "Microsoft.VisualStudio.VsInteractiveWindow",
                "Microsoft.VisualStudio.Editor.Implementation",
                "Microsoft.VisualStudio.Platform.VSEditor",
                "Microsoft.PythonTools.VSInterpreters");

            var catalog = MefCatalogFactory.CreateAssembliesCatalog(
                "Microsoft.VisualStudio.CoreUtility",
                "Microsoft.VisualStudio.Text.Data",
                "Microsoft.VisualStudio.Text.Logic",
                "Microsoft.VisualStudio.Text.UI",
                "Microsoft.VisualStudio.Text.UI.Wpf",
                "Microsoft.VisualStudio.InteractiveWindow",
                "Microsoft.VisualStudio.VsInteractiveWindow",
                "Microsoft.VisualStudio.Editor",
                "Microsoft.VisualStudio.Language.Intellisense",
                "Microsoft.VisualStudio.Platform.VSEditor",
                "Microsoft.PythonTools",
                "Microsoft.PythonTools.VSInterpreters")
                          .WithCompositionService()
                          .WithServiceProvider()
                          .AddJoinableTaskContext()
                          .AddType <MockTextUndoHistoryRegistry>()
                          .AddTypesFromAssembly("Microsoft.VisualStudio.Editor.Implementation",
                                                "Microsoft.VisualStudio.Editor.Implementation.LoggingServiceInternal",
                                                "Microsoft.VisualStudio.Editor.Implementation.PeekResultFactory",
                                                "Microsoft.VisualStudio.Editor.Implementation.TipManager",
                                                "Microsoft.VisualStudio.Editor.Implementation.VisualStudioWaitIndicator",
                                                "Microsoft.VisualStudio.Editor.Implementation.VsEditorAdaptersFactoryService");

            var configuration        = CompositionConfiguration.Create(catalog);
            var runtimeConfiguration = RuntimeComposition.CreateRuntimeComposition(configuration);

            return(runtimeConfiguration.CreateExportProviderFactory());
        }
コード例 #2
0
ファイル: MockVs.cs プロジェクト: sabeelcoder/PTVS
        private static CachedVsInfo CreateCachedVsInfo()
        {
            var runningLoc = Path.GetDirectoryName(typeof(MockVs).Assembly.Location);

            // load all of the available DLLs that depend upon TestUtilities into our catalog
            var assemblies   = new List <Assembly>();
            var packageTypes = new List <Type>();

            var excludedAssemblies = new HashSet <string>(new string[] {
                "Microsoft.VisualStudio.Text.Internal.dll",
                "Microsoft.VisualStudio.Utilities.dll",
                "Microsoft.VisualStudio.Validation.dll",
                "Microsoft.VisualStudio.Workspace.dll",
                "Microsoft.VisualStudio.Debugger.DebugAdapterHost.Interfaces.dll",
                "TestUtilities"
            }, StringComparer.OrdinalIgnoreCase);

            foreach (var file in Directory.GetFiles(runningLoc, "*.dll"))
            {
                if (excludedAssemblies.Contains(Path.GetFileName(file)))
                {
                    continue;
                }

                Assembly asm;
                try {
                    asm = Assembly.Load(Path.GetFileNameWithoutExtension(file));
                } catch {
                    continue;
                }

                Console.WriteLine("Including {0}", file);
                try {
                    foreach (var type in asm.GetTypes())
                    {
                        if (type.IsDefined(typeof(PackageRegistrationAttribute), false))
                        {
                            packageTypes.Add(type);
                        }
                    }
                    assemblies.Add(asm);
                } catch (TypeInitializationException tix) {
                    Console.WriteLine(tix);
                } catch (ReflectionTypeLoadException tlx) {
                    Console.WriteLine(tlx);
                    foreach (var ex in tlx.LoaderExceptions)
                    {
                        Console.WriteLine(ex);
                    }
                } catch (IOException iox) {
                    Console.WriteLine(iox);
                }
            }

            var catalog = MefCatalogFactory.CreateAssembliesCatalog(
                "Microsoft.VisualStudio.CoreUtility",
                "Microsoft.VisualStudio.Text.Data",
                "Microsoft.VisualStudio.Text.Logic",
                "Microsoft.VisualStudio.Text.UI",
                "Microsoft.VisualStudio.Text.UI.Wpf",
                "Microsoft.VisualStudio.InteractiveWindow",
                "Microsoft.VisualStudio.VsInteractiveWindow",
                "Microsoft.VisualStudio.Editor",
                "Microsoft.VisualStudio.Language.Intellisense",
                "Microsoft.PythonTools",
                "Microsoft.PythonTools.TestAdapter",
                "Microsoft.PythonTools.VSInterpreters",
                "MockVsTests",
                "PythonToolsMockTests")
                          .WithCompositionService()
                          .AddType <MockTextUndoHistoryRegistry>()
                          .AddType <MockContentTypeRegistryService>()
                          .AddType <MockClassificationTypeRegistryService>();

            return(new CachedVsInfo(catalog, packageTypes));
        }