/// <summary> /// Writes the log messages to the message log /// </summary> /// <param name="installationHistoryRoot"></param> /// <param name="logMessages"></param> private void SaveInstallationMessages(string installationHistoryRoot, List <ContingencyEntry> logMessages) { try { if (string.IsNullOrEmpty(installationHistoryRoot)) { installationHistoryRoot = FileUtil.MakePath(FileUtils.InstallationHistoryRoot, "Upgrade_FAILURE_" + DateTime.Now.ToString("yyyyMMddTHHmmss") + DateTime.Now.Millisecond); } string messagesFile = Path.Combine(installationHistoryRoot, "messages.xml"); FileUtil.EnsureFolder(messagesFile); using (FileStream fileStream = File.Create(messagesFile)) { XmlEntrySerializer xmlEntrySerializer = new XmlEntrySerializer(); //For some reason, this has changed in Sitecore 9. We are using reflection to get it because the fileStream parameter can be a FileStream or Stream //xmlEntrySerializer.Serialize(logMessages, fileStream); Type serializerType = xmlEntrySerializer.GetType(); MethodInfo serializeMethod = serializerType.GetMethod("Serialize", BindingFlags.Public | BindingFlags.Instance, null, new Type[] { logMessages.GetType(), typeof(FileStream) }, null); if (serializeMethod == null) { serializeMethod = serializerType.GetMethod("Serialize", BindingFlags.Public | BindingFlags.Instance, null, new Type[] { logMessages.GetType(), typeof(Stream) }, null); } if (serializeMethod != null) { serializeMethod.Invoke(xmlEntrySerializer, new object[] { logMessages, fileStream }); } } } catch (Exception ex) { Log.Fatal("Error saving installation messages", ex, typeof(InstallPackage)); } }
/// <summary> /// Writes the log messages to the message log /// </summary> /// <param name="installationHistoryRoot"></param> /// <param name="logMessages"></param> private void SaveInstallationMessages(string installationHistoryRoot, List <ContingencyEntry> logMessages) { try { if (string.IsNullOrEmpty(installationHistoryRoot)) { installationHistoryRoot = FileUtil.MakePath(FileUtils.InstallationHistoryRoot, "Upgrade_FAILURE_" + DateTime.Now.ToString("yyyyMMddTHHmmss") + DateTime.Now.Millisecond); } string messagesFile = Path.Combine(installationHistoryRoot, "messages.xml"); FileUtil.EnsureFolder(messagesFile); using (FileStream fileStream = File.Create(messagesFile)) { XmlEntrySerializer xmlEntrySerializer = new XmlEntrySerializer(); xmlEntrySerializer.Serialize(logMessages, fileStream); } } catch (Exception ex) { Log.Fatal("Error saving installation messages", ex, typeof(InstallPackage)); } }
/// <summary> /// Writes the log messages to the message log /// </summary> /// <param name="installationHistoryRoot"></param> /// <param name="logMessages"></param> private void SaveInstallationMessages(string installationHistoryRoot, List<ContingencyEntry> logMessages) { if (string.IsNullOrEmpty(installationHistoryRoot)) { installationHistoryRoot = FileUtil.MakePath(FileUtils.InstallationHistoryRoot, "Upgrade_FAILURE_" + DateTime.Now.ToString("yyyyMMddTHHmmss") + DateTime.Now.Millisecond); } string messagesFile = Path.Combine(installationHistoryRoot, "messages.xml"); FileUtil.EnsureFolder(messagesFile); using (FileStream fileStream = File.Create(messagesFile)) { XmlEntrySerializer xmlEntrySerializer = new XmlEntrySerializer(); xmlEntrySerializer.Serialize(logMessages, fileStream); } }