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()); } }
protected override void OnStartup(StartupEventArgs e) { Preloader.LoadAssemblies( Preloader.GetPackageFolders(Preloader.RemoteInstall.None, DefaultInstallationPaths.SystemRepositoryDirectory, "openfilesystem", "sharpziplib") ); RegisterServices(); ShowMainWindow(); SendInitalDataPopulationMessage(); base.OnStartup(e); }
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; } }