Esempio n. 1
0
        public override bool Execute()
        {
            if (StartDebug)
            {
                Debugger.Launch();
            }
            var asm = Preloader.LoadAssemblies(
                Preloader.GetPackageFolders(Preloader.RemoteInstall.None, Environment.CurrentDirectory, DefaultInstallationPaths.SystemRepositoryDirectory, "openwrap", "openfilesystem", "sharpziplib")
                );

            foreach (var assembly in asm.Select(x => x.Key))
            {
                Log.LogMessage(MessageImportance.Low, "Pre-loaded assembly " + assembly);
            }
            var openWrapAssembly = asm.Select(x => x.Key).First(x => x.GetName().Name.Equals("openwrap", StringComparison.OrdinalIgnoreCase));
            var initializer      = openWrapAssembly.GetType("OpenWrap.Build.BuildInitializer");
            var method           = initializer.GetMethod("Initialize", BindingFlags.Static | BindingFlags.Public);
            var values           = method.Invoke(null, new object[] { CurrentProjectFile, CurrentDirectory ?? Environment.CurrentDirectory }) as IDictionary <string, string>;

            Name           = values[BuildConstants.PACKAGE_NAME];
            Scope          = values[BuildConstants.PROJECT_SCOPE];
            DescriptorPath = values[BuildConstants.DESCRIPTOR_PATH];

            Log.LogMessage(MessageImportance.Normal, "OpenWrap correctly initialized.");
            foreach (var kv in values)
            {
                Log.LogMessage(MessageImportance.Normal, "{0}: {1}", kv.Key, kv.Value);
            }

            return(true);
        }
        void LoadAppDomain()
        {
            Notify("Loading packages...");


            try
            {
                var packages = Preloader.GetPackageFolders(Preloader.RemoteInstall.None, _rootPath, null, "openwrap").ToArray();

                foreach (var package in packages)
                {
                    Notify("Loading package " + package);
                }
                _appDomain = AppDomain.CreateDomain("OpenWrap Visual Studio Integration (default scope)");
                //_appDomain.SetupInformation = new AppDomainSetup() { ShadowCopyFiles = true }
                _appDomain.SetData("openwrap.vs.version", _dte.Version);
                _appDomain.SetData("openwrap.vs.currentdirectory", _rootPath);
                _appDomain.SetData("openwrap.vs.packages", packages.ToArray());
                _appDomain.SetData("openwrap.vs.appdomain", AppDomain.CurrentDomain);

                // replace that with the location in the codebase we just registered, ensuring the correct version is loaded
                var location = Type.GetTypeFromProgID(_progId).Assembly.Location;
                AppDomain.CurrentDomain.AssemblyResolve += HandleSelfLoad;
                _appDomainManager = (IDisposable)_appDomain.CreateInstanceFromAndUnwrap(location, typeof(AddInAppDomainManager).FullName);
                AppDomain.CurrentDomain.AssemblyResolve -= HandleSelfLoad;
                _appDomain.DomainUnload += HandleAppDomainChange;
            }
            catch (Exception e)
            {
                Notify("Could not load bootstrap packages.");
                Notify(e.ToString());
            }
        }
Esempio n. 3
0
 protected override void OnStartup(StartupEventArgs e)
 {
     Preloader.LoadAssemblies(
         Preloader.GetPackageFolders(Preloader.RemoteInstall.None, DefaultInstallationPaths.SystemRepositoryDirectory, "openfilesystem", "sharpziplib")
         );
     RegisterServices();
     ShowMainWindow();
     SendInitalDataPopulationMessage();
     base.OnStartup(e);
 }
Esempio n. 4
0
 protected void when_locating_package(string packageName)
 {
     try
     {
         package_directories = Preloader.GetPackageFolders(Preloader.RemoteInstall.None, project_directory.Path, null, packageName);
     }
     catch (Exception e)
     {
         exception = e;
     }
 }