public static string GetUpgradeCode(SetupFeatures feature) { string guid = null; switch (feature) { case SetupFeatures.ExtensionCommon: guid = "092688F9-8EF4-4D99-AEBF-CBDEB5276D2C"; break; case SetupFeatures.TenantExtension: guid = "092688F9-8EF4-4D99-AEBF-CBDEB5276D2B"; break; case SetupFeatures.AdminExtension: guid = "092688F9-8EF4-4D99-AEBF-CBDEB5276D2D"; break; case SetupFeatures.Server: guid = "93CAADEF-B45F-4343-B824-B90245A80500"; break; } return("{" + guid + "}"); }
/// <summary> /// Parses the command line. /// </summary> /// <param name="commandLine">The command line.</param> /// <returns>true if no errors</returns> private static bool ParseCommandLine() { // Get command line arguments and decide if setup is to be Unattended String[] arguments = Environment.GetCommandLineArgs(); CommandlineParameters commandlineParameters = new CommandlineParameters(); // Parse command line arguments commandlineParameters.ParseCommandline(arguments); if ((bool)commandlineParameters.GetParameterValue(CommandlineParameterId.Help) == true) { MessageBox.Show(WPFResourceDictionary.CommandlineUsage, WPFResourceDictionary.SetupMessageBoxTitle, MessageBoxButton.OK); return(false); } SetupLogger.LogInfo("Main : Current directory = {0}", Environment.CurrentDirectory); if (commandlineParameters.IsParameterSpecified(CommandlineParameterId.Action) == false) { commandlineParameters.SetParameterValue(CommandlineParameterId.Action, SetupActions.UserInterface); } if ((SetupActions)commandlineParameters.GetParameterValue(CommandlineParameterId.Action) == SetupActions.UnattendedInstall && (bool)commandlineParameters.GetParameterValue(CommandlineParameterId.AcceptLicense) == false && (bool)commandlineParameters.GetParameterValue(CommandlineParameterId.OemSetup) == false) { SetupLogger.LogInfo("Have NOT acknowledge acceptance of the license terms in unattended install."); return(false); } String iniFile = (String)commandlineParameters.GetParameterValue(CommandlineParameterId.IniFile); try { if (iniFile == null) { SetupInputs.Instance.LoadParameterList(parameterList); } else { SetupInputs.Instance.LoadFrom(iniFile, parameterList); } } catch (Exception ex) { SetupLogger.LogInfo("ParseCommandLine() ", ex); return(false); } // Need to save the installation location in property bag for prerequisite check String installationLocation = SetupInputs.Instance.FindItem(SetupInputTags.BinaryInstallLocationTag); PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.InstallationLocation, installationLocation); String installSource = (String)commandlineParameters.GetParameterValue(CommandlineParameterId.SetupLocation); if (!String.IsNullOrEmpty(installSource)) { installSource = Path.Combine(installSource, SetupConstants.SetupFolder); PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.LocationOfSetupFiles, installSource); } else { installSource = PropertyBagDictionary.Instance.GetProperty <string>(PropertyBagDictionary.SetupExePath); } String certificateThumbprint = SetupInputs.Instance.FindItem(SetupInputTags.CmpCertificateThumbprintTag); if (!String.IsNullOrEmpty(certificateThumbprint)) { certificateThumbprint = "LocalMachine,My," + certificateThumbprint; PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.CMPCertificateThumbprint, certificateThumbprint); } SetupLogger.LogInfo("OriginalInstallSource: {0}", installSource); SetupActions setupAction = (SetupActions)commandlineParameters.GetParameterValue(CommandlineParameterId.Action); if (setupAction == SetupActions.UnattendedUninstall) { PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.Uninstall, "1"); } if (setupAction != SetupActions.UserInterface) { PropertyBagDictionary.Instance.SafeAdd(PropertyBagDictionary.Silent, true); SetupFeatures setupFeaturesFlags = (SetupFeatures)commandlineParameters.GetParameterValue(CommandlineParameterId.Feature); if ((setupFeaturesFlags & SetupFeatures.TenantExtension) == SetupFeatures.TenantExtension) { PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.TenantExtension, "1"); PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.ExtensionCommon, "1"); } if ((setupFeaturesFlags & SetupFeatures.AdminExtension) == SetupFeatures.AdminExtension) { PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.AdminExtension, "1"); PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.ExtensionCommon, "1"); } if ((setupFeaturesFlags & SetupFeatures.Server) == SetupFeatures.Server) { PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.Server, "1"); } } bool isLocalSystemAccount = SetupInputs.Instance.FindItem(SetupInputTags.CmpServiceLocalAccountTag); if (!isLocalSystemAccount) { SetupInputs.Instance.EditItem(SetupInputTags.CmpServiceDomainTag, commandlineParameters.GetParameterValue(CommandlineParameterId.CmpServiceDomain)); SetupInputs.Instance.EditItem(SetupInputTags.CmpServiceUserNameTag, commandlineParameters.GetParameterValue(CommandlineParameterId.CmpServiceUserName)); SetupInputs.Instance.EditItem(SetupInputTags.CmpServiceUserPasswordTag, commandlineParameters.GetParameterValue(CommandlineParameterId.CmpServiceUserPassword)); } bool isDatabaseImpersonation = SetupInputs.Instance.FindItem(SetupInputTags.RemoteDatabaseImpersonationTag); if (isDatabaseImpersonation) { try { SetupInputs.Instance.EditItem(SetupInputTags.SqlDBAdminDomainTag, commandlineParameters.GetParameterValue(CommandlineParameterId.SqlDBAdminDomain)); SetupInputs.Instance.EditItem(SetupInputTags.SqlDBAdminNameTag, commandlineParameters.GetParameterValue(CommandlineParameterId.SqlDBAdminName)); SetupInputs.Instance.EditItem(SetupInputTags.SqlDBAdminPasswordTag, commandlineParameters.GetParameterValue(CommandlineParameterId.SqlDBAdminPassword)); } catch (Exception ex) { SetupLogger.LogInfo("ParseCommandLine(), SqlDBAdminDomain or SqlDBAdminName or SqlDBAdminPassword is null or invalid", ex); return(false); } } if ((bool)commandlineParameters.GetParameterValue(CommandlineParameterId.OemSetup)) { PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.VhdVersionPreparation, true); } if ((bool)commandlineParameters.GetParameterValue(CommandlineParameterId.Configure)) { PropertyBagDictionary.Instance.SafeAdd(PropertyBagConstants.VhdVersionConfiguration, true); } return(true); }