public void InstallPackage(string path) { // Use default logger ILog log = LogManager.GetLogger("root"); XmlConfigurator.Configure((XmlElement)ConfigurationManager.GetSection("log4net")); FileInfo pkgFile = new FileInfo(path); if (!pkgFile.Exists) { throw new ClientAlertException($"Cannot access path '{path}'. Please check path setting."); } Sitecore.Context.SetActiveSite("shell"); using (new SecurityDisabler()) { using (new ProxyDisabler()) { using (new SyncOperationContext()) { Sitecore.Install.Framework.IProcessingContext context = new Sitecore.Install.Framework.SimpleProcessingContext(); // Sitecore.Install.Items.IItemInstallerEvents events = new Sitecore.Install.Items.DefaultItemInstallerEvents(new Sitecore.Install.Utils.BehaviourOptions(Sitecore.Install.Utils.InstallMode.Overwrite, Sitecore.Install.Utils.MergeMode.Undefined)); context.AddAspect(events); Sitecore.Install.Files.IFileInstallerEvents events1 = new Sitecore.Install.Files.DefaultFileInstallerEvents(true); context.AddAspect(events1); var inst = new Sitecore.Install.Installer(); inst.InstallPackage(Sitecore.MainUtil.MapPath(path), context); } } } }
public ActionResult InstallPackage() { StringBuilder ret = new StringBuilder(); Stopwatch sw = new Stopwatch(); sw.Start(); try { using (new SecurityDisabler()) using (new SyncOperationContext()) { IProcessingContext context = new SimpleProcessingContext(); IItemInstallerEvents events = new DefaultItemInstallerEvents( new BehaviourOptions(InstallMode.Overwrite, MergeMode.Undefined)); context.AddAspect(events); IFileInstallerEvents events1 = new DefaultFileInstallerEvents(true); context.AddAspect(events1); Sitecore.Install.Installer installer = new Sitecore.Install.Installer(); installer.InstallPackage(MainUtil.MapPath(@"C:\inetpub\wwwroot\demo1.local\App_Data\packages\bigtst.zip"), context); } } catch (Exception e) { ret.Append(e.ToString()); } finally { ret.Append($"\n\n{sw.Elapsed.TotalSeconds}"); } return(Content(ret.ToString())); }
public void InstallPackage(string path) { // Use default logger ILog log = LogManager.GetLogger("root"); XmlConfigurator.Configure((XmlElement)ConfigurationManager.GetSection("log4net")); FileInfo pkgFile = new FileInfo(path); if (!pkgFile.Exists) throw new ClientAlertException($"Cannot access path '{path}'. Please check path setting."); Sitecore.Context.SetActiveSite("shell"); using (new SecurityDisabler()) { using (new ProxyDisabler()) { using (new SyncOperationContext()) { Sitecore.Install.Framework.IProcessingContext context = new Sitecore.Install.Framework.SimpleProcessingContext(); // Sitecore.Install.Items.IItemInstallerEvents events = new Sitecore.Install.Items.DefaultItemInstallerEvents(new Sitecore.Install.Utils.BehaviourOptions(Sitecore.Install.Utils.InstallMode.Overwrite, Sitecore.Install.Utils.MergeMode.Undefined)); context.AddAspect(events); Sitecore.Install.Files.IFileInstallerEvents events1 = new Sitecore.Install.Files.DefaultFileInstallerEvents(true); context.AddAspect(events1); var inst = new Sitecore.Install.Installer(); inst.InstallPackage(Sitecore.MainUtil.MapPath(path), context); } } } }
/// <summary> /// If verification fails, the package will be installed by this method. /// </summary> /// <param name="packageFileName">The file name of the Sitecore Package located in Sitecore's configured Packages folder.</param> protected virtual void InstallPackage(string packageFileName) { var filePath = $"{Sitecore.Configuration.Settings.DataFolder}/packages/{packageFileName}"; using (new SecurityDisabler()) { var installMode = Details.InstallMode; if (installMode == InstallMode.Undefined) { installMode = PackageVerifierConfiguration.Current.DefaultInstallMode; } var mergeMode = Details.MergeMode; if (mergeMode == MergeMode.Undefined) { mergeMode = PackageVerifierConfiguration.Current.DefaultMergeMode; } using (new SyncOperationContext()) { IProcessingContext context = new SimpleProcessingContext(); IItemInstallerEvents events = new DefaultItemInstallerEvents( new BehaviourOptions(installMode, mergeMode)); context.AddAspect(events); IFileInstallerEvents events1 = new DefaultFileInstallerEvents(true); context.AddAspect(events1); var installer = new Sitecore.Install.Installer(); installer.InstallPackage(MainUtil.MapPath(filePath), context); } } }
public void InstallPackage() { var filepath = ""; if (System.Text.RegularExpressions.Regex.IsMatch(Settings.DataFolder, @"^(([a-zA-Z]:\\)|(//)).*")) { //if we have an absolute path, rather than relative to the site root filepath = Settings.DataFolder + @"\packages\DemandbasePackage.zip"; } else { filepath = HttpRuntime.AppDomainAppPath + Settings.DataFolder.Substring(1) + @"\packages\DemandbasePackage.zip"; } try { GeneratePackage(filepath); int count = 0; while (true) { if (count > 15) { throw new Exception("Demandbase package extracted to data folder packages however appears to be locked, unlock this file and recycle the app pool."); } if (!IsFileLocked(new FileInfo(filepath))) { using (new SecurityDisabler()) { using (new SyncOperationContext()) { IProcessingContext context = new SimpleProcessingContext(); IItemInstallerEvents events = new DefaultItemInstallerEvents( new BehaviourOptions(InstallMode.Overwrite, MergeMode.Undefined)); context.AddAspect(events); IFileInstallerEvents events1 = new DefaultFileInstallerEvents(true); context.AddAspect(events1); Sitecore.Install.Installer installer = new Sitecore.Install.Installer(); installer.InstallPackage(MainUtil.MapPath(filepath), context); break; } } } else { Thread.Sleep(1000); } } } catch (Exception e) { Log.Error("Demandbase was unable to initialize", e, this); } }
public void InstallZipPackage(string path, Credentials credentials) { Login(credentials); // Fallback to temp folder if (File.Exists(Server.MapPath(path))) { path = Server.MapPath(path); } else { path = Server.MapPath("/temp/" + path); } var file = new FileInfo(path); if (!file.Exists) { throw new ApplicationException(string.Format("Cannot access path '{0}'.", path)); } Sitecore.Context.SetActiveSite("shell"); using (new SecurityDisabler()) { using (new ProxyDisabler()) { using (new SyncOperationContext()) { IProcessingContext context = new SimpleProcessingContext(); // IItemInstallerEvents events = new DefaultItemInstallerEvents(new Sitecore.Install.Utils.BehaviourOptions(Sitecore.Install.Utils.InstallMode.Overwrite, Sitecore.Install.Utils.MergeMode.Undefined)); context.AddAspect(events); IFileInstallerEvents events1 = new DefaultFileInstallerEvents(true); context.AddAspect(events1); var installer = new Sitecore.Install.Installer(); installer.InstallPackage(path, context); } } } }
/// <summary> /// Starts up a new tokenkeeper that will be set up as a singleton /// </summary> /// <param name="args"></param> public void Process(PipelineArgs args) { if (TokenKeeper.TokenSingleton == null) { RegisterSitecoreTokens(); TokenKeeper.TokenSingleton = Tokens; } Assert.ArgumentNotNull(args, "args"); RegisterRoutes("tokenManager"); if (RequiredSitecoreItemsMissing()) { var filepath = ""; if (System.Text.RegularExpressions.Regex.IsMatch(Settings.DataFolder, @"^(([a-zA-Z]:\\)|(//)).*")) //if we have an absolute path, rather than relative to the site root filepath = Settings.DataFolder + @"\packages\TokenManager.TokenManagerPackage.zip"; else filepath = HttpRuntime.AppDomainAppPath + Settings.DataFolder.Substring(1) + @"\packages\TokenManager.TokenManagerPackage.zip"; try { var manifestResourceStream = GetType().Assembly .GetManifestResourceStream("TokenManager.Resources.TokenManagerPackage.zip"); manifestResourceStream?.CopyTo(new FileStream(filepath, FileMode.Create)); Task.Run(() => { while (true) { if (!IsFileLocked(new FileInfo(filepath))) { using (new SecurityDisabler()) { using (new ProxyDisabler()) { using (new SyncOperationContext()) { IProcessingContext context = new SimpleProcessingContext(); IItemInstallerEvents events = new DefaultItemInstallerEvents( new BehaviourOptions(InstallMode.Overwrite, MergeMode.Undefined)); context.AddAspect(events); IFileInstallerEvents events1 = new DefaultFileInstallerEvents(true); context.AddAspect(events1); Sitecore.Install.Installer installer = new Sitecore.Install.Installer(); installer.InstallPackage(MainUtil.MapPath(filepath), context); break; } } } } else Thread.Sleep(1000); } }); } catch (Exception e) { Log.Error("TokenManager was unable to initialize", e, this); } } }
/// <summary> /// Starts up a new tokenkeeper that will be set up as a singleton /// </summary> /// <param name="args"></param> public void Process(PipelineArgs args) { if (TokenIdentifier.Current == null) { TokenIdentifier.IdentifierSingleton = Identifier; } if (TokenKeeper.TokenSingleton == null) { TokenKeeper.TokenSingleton = Tokens; } Assert.ArgumentNotNull(args, "args"); RegisterRoutes("tokenManager"); TokenKeeper._isSc8 = IsSc8(); if (RequiredSitecoreItemsMissing()) { var filepath = ""; if (System.Text.RegularExpressions.Regex.IsMatch(Settings.DataFolder, @"^(([a-zA-Z]:\\)|(//)).*")) { //if we have an absolute path, rather than relative to the site root filepath = Settings.DataFolder + @"\packages\TokenManager.TokenManagerPackage.zip"; } else { filepath = HttpRuntime.AppDomainAppPath + Settings.DataFolder.Substring(1) + @"\packages\TokenManager.TokenManagerPackage.zip"; } try { using (var manifestResourceStream = GetType().Assembly .GetManifestResourceStream(TokenKeeper.IsSc8 ? "TokenManager.Resources.TokenManagerPackage.zip" : "TokenManager.Resources.TokenManagerSc7.zip")) using (var file = new FileStream(filepath, FileMode.Create)) { manifestResourceStream?.CopyTo(file); } int count = 0; while (true) { if (!IsFileLocked(new FileInfo(filepath))) { using (new SecurityDisabler()) using (new SyncOperationContext()) { IProcessingContext context = new SimpleProcessingContext(); IItemInstallerEvents events = new DefaultItemInstallerEvents( new BehaviourOptions(InstallMode.Overwrite, MergeMode.Undefined)); context.AddAspect(events); IFileInstallerEvents events1 = new DefaultFileInstallerEvents(true); context.AddAspect(events1); Sitecore.Install.Installer installer = new Sitecore.Install.Installer(); installer.InstallPackage(MainUtil.MapPath(filepath), context); break; } } Thread.Sleep(1000); count++; if (count > 15) { break; } } RegisterSitecoreTokens(); ValidateInsertOptions(); } catch (Exception e) { Log.Error("TokenManager was unable to initialize", e, this); } } else { RegisterSitecoreTokens(); ValidateInsertOptions(); } }
private bool EnsureItemDependencies(Type type) { if (RequiredItemMissing()) { var filepath = ""; //if we have an absolute path, rather than relative to the site root if (System.Text.RegularExpressions.Regex.IsMatch(Settings.DataFolder, @"^(([a-zA-Z]:\\)|(//)).*")) { filepath = Settings.DataFolder + @"\packages\ThisIsMyPackage.zip"; } else { filepath = State.HttpRuntime.AppDomainAppPath + Settings.DataFolder.Substring(1) + @"\packages\ThisIsMyPackage.zip"; } try { type.Assembly .GetManifestResourceStream($"{type.Assembly.GetName()}.ThisIsMyPackage.zip") ?.CopyTo(new FileStream(filepath, FileMode.Create)); Task.Run(() => { while (true) { if (!IsFileLocked(new FileInfo(filepath))) { using (new SecurityDisabler()) { using (new SyncOperationContext()) { IProcessingContext context = new SimpleProcessingContext(); IItemInstallerEvents events = new DefaultItemInstallerEvents( new BehaviourOptions(InstallMode.Overwrite, MergeMode.Undefined)); context.AddAspect(events); IFileInstallerEvents events1 = new DefaultFileInstallerEvents(true); context.AddAspect(events1); Sitecore.Install.Installer installer = new Sitecore.Install.Installer(); installer.InstallPackage(MainUtil.MapPath(filepath), context); break; } } } Thread.Sleep(1000); } }); } catch (Exception e) { Log.Error("Unable to install dependent package", e, this); return(false); } return(true); } return(true); }