// Token: 0x06000119 RID: 281 RVA: 0x000072F8 File Offset: 0x000054F8
        internal void TryAddUpdatesParameterCopyMspFiles(string dirToCheck, string mspSourceDir, string destDir)
        {
            string text;
            string text2;

            SetupHelper.TryFindUpdates(dirToCheck, out text, out text2);
            if (text != null)
            {
                base.ParsedArguments["updatesdir"] = CommandLineParser.ParseSourceDir(dirToCheck);
                SetupLauncherHelper.CopyMspFiles(mspSourceDir, destDir);
            }
            if (text2 != null)
            {
                base.ParsedArguments["languagepack"] = CommandLineParser.ParseSourceFile(text2);
            }
        }
示例#2
0
        // Token: 0x0600000B RID: 11 RVA: 0x000021E8 File Offset: 0x000003E8
        public override int Run()
        {
            ExitCode exitCode = this.SetupChecks();

            if (exitCode == ExitCode.Error)
            {
                SetupLogger.Log(new LocalizedString("CurrentResult main.run:185: " + ExitCode.Error));
                return(1);
            }
            if (SetupBase.TheApp.ParsedArguments.ContainsKey("updatesdir"))
            {
                if (base.IsExchangeInstalled)
                {
                    this.ReportMessage(Strings.UpdatesNotOnFreshInstall);
                    SetupLogger.Log(new LocalizedString("CurrentResult main.run:196: " + ExitCode.Error));
                    return(1);
                }
                if (SetupLauncherHelper.IsRestart(SetupBase.TheApp.ParsedArguments))
                {
                    SetupLauncherHelper.CopyMspFiles(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "Temp\\ExchangeSetup\\MspTemp"), Path.Combine(SetupHelper.WindowsDir, "Temp\\ExchangeSetup"));
                }
                else
                {
                    ExitCode exitCode2 = this.CheckForUpdates(SetupBase.TheApp.ParsedArguments);
                    if (exitCode2 != ExitCode.Success)
                    {
                        SetupLogger.Log(new LocalizedString("CurrentResult main.run:214: " + exitCode2));
                        return((int)exitCode2);
                    }
                }
            }
            if (!this.CopyFiles())
            {
                this.ReportMessage(Strings.FileCopyFailed(SetupBase.TheApp.SourceDir, Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "Temp\\ExchangeSetup")));
                SetupLogger.Log(new LocalizedString("CurrentResult main.run:223: " + ExitCode.Error));
                return(1);
            }
            int num = SetupLauncherHelper.LoadAssembly(SetupBase.SetupArgs, SetupBase.TheApp.ParsedArguments, SetupBase.TheApp, "Microsoft.Exchange.Setup.Console.dll", "Microsoft.Exchange.Setup.Console.Console");

            if (num == 1)
            {
                this.ReportMessage();
                this.ReportMessage(Strings.AdditionalErrorDetails);
            }
            SetupLogger.Log(new LocalizedString("CurrentResult main.run:235: " + num));
            return(num);
        }
示例#3
0
        // Token: 0x060001F1 RID: 497 RVA: 0x0000BA34 File Offset: 0x00009C34
        private void VerifyAndSetRegistry(object checkPath)
        {
            if (base.InvokeRequired)
            {
                base.Invoke(new UpdatesDownloadsPage.VerifyAndSetRegistryDelegate(this.VerifyAndSetRegistry), new object[]
                {
                    checkPath
                });
                return;
            }
            string text = (string)checkPath;
            string languagePackBundleFileName = Path.Combine(text, "LanguagePackBundle.exe");
            bool   flag  = true;
            string value = string.Empty;

            if (File.Exists(languagePackBundleFileName))
            {
                using (LanguagePackValidator languagePackValidator = new LanguagePackValidator(languagePackBundleFileName, this.localXMLVersioningPath, new Action <object>(this.UpdateDownloadUpdatesStatusBox)))
                {
                    flag = languagePackValidator.Validate();
                    if (flag)
                    {
                        value = languagePackValidator.ValidatedFiles.FirstOrDefault((string x) => x.Equals(languagePackBundleFileName, StringComparison.InvariantCultureIgnoreCase));
                    }
                    goto IL_C2;
                }
            }
            languagePackBundleFileName = null;
IL_C2:
            bool flag2 = true;
            string text2 = string.Empty;

            if (Directory.Exists(text))
            {
                string[] files = Directory.GetFiles(text, "*.msp", SearchOption.TopDirectoryOnly);
                if (files.Length != 0)
                {
                    using (MspValidator mspValidator = new MspValidator(files, Path.Combine(this.sourceDir, "EXCHANGESERVER.msi"), languagePackBundleFileName, File.Exists(this.localXMLVersioningPath) ? this.localXMLVersioningPath : null, new Action <object>(this.UpdateDownloadUpdatesStatusBox)))
                    {
                        flag2 = mspValidator.Validate();
                        if (flag2)
                        {
                            text2 = mspValidator.ValidatedFiles.LastOrDefault((string x) => !string.IsNullOrEmpty(x) && MsiHelper.IsMspFileExtension(x));
                        }
                    }
                }
            }
            bool flag3 = !string.IsNullOrEmpty(value);
            bool flag4 = !string.IsNullOrEmpty(text2);
            bool flag5 = false;

            if (flag && flag2)
            {
                flag5 = (text.Equals(this.saveToDirectory, StringComparison.InvariantCultureIgnoreCase) || this.MoveToSaveToPath());
            }
            bool flag6 = false;

            if (flag5)
            {
                flag6 = this.SetRegistryKeyForBundle();
            }
            if (flag6)
            {
                bool   flag7 = false;
                string text3 = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Windows), "Temp\\ExchangeSetup\\MspTemp");
                if (flag4)
                {
                    MspUtility.UnpackMspCabs(Path.Combine(this.saveToDirectory, Path.GetFileName(text2)), text3);
                    flag7 = SetupLauncherHelper.SetupRequiredFilesUpdated(SetupChecksFileConstant.GetSetupRequiredFiles(), SetupHelper.GetSetupRequiredFilesFromAssembly(text3), text3);
                }
                if (flag7 || flag3)
                {
                    ExSetupUI.ExitApplication(ExitCode.Restart);
                }
                else if (flag4)
                {
                    SetupLauncherHelper.CopyMspFiles(text3, Path.Combine(SetupHelper.WindowsDir, "Temp\\ExchangeSetup"));
                }
                this.UpdateDownloadUpdatesStatusBox(Strings.DownloadInstallationCompleted);
                base.SetWizardButtons(WizardButtons.Next);
                base.SetVisibleWizardButtons(WizardButtons.Next);
                return;
            }
            this.customProgressBarWithTitle.TitleOnly = true;
            this.UpdateDownloadUpdatesStatusBox(Strings.FinishedWithError(new LocalizedString(Logger.PathToFileLog)));
            base.SetVisibleWizardButtons(WizardButtons.Previous | WizardButtons.Next);
            base.SetWizardButtons(WizardButtons.Previous);
        }