Besserer Weg, um IIS7 programmatisch zu installieren

Ich habe ein Webapp-Installationsprogramm, das alle erforderlichen Komponenten installiert, einschließlich IIS 7.

Da IIS in einem Visual Studio-Setup-Projekt keine Voraussetzung ist, habe ich den folgenden Code zum Installieren von IIS über Code (für Windows Vista und 7) entwickelt.

private string ConfigureIIS7()
{
    string output = string.Empty;
    if (Environment.OSVersion.ToString().Contains("Microsoft Windows NT 5"))  // Its WindowsXP [with or without SP2]
    {
        MessageBox.Show("IIS 6.0 is not installed on this machine. Please install the same and proceed with the installation or contact your administrator","Installer",MessageBoxButtons .OK ,MessageBoxIcon .Warning);
        throw new System.Exception("IIS 6.0 is not installed on this machine.");
    }
    else
    {
        string CmdToExecute;
        CmdToExecute = "cmd /c start /w pkgmgr /l:log.etw /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-Security;IIS-BasicAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI";
        Process prRunIIS = new Process();
        prRunIIS.StartInfo = new ProcessStartInfo("cmd.exe", CmdToExecute);
        prRunIIS.StartInfo.UseShellExecute = false;
        prRunIIS.StartInfo.RedirectStandardOutput = true;
        prRunIIS.StartInfo.CreateNoWindow = true;
        prRunIIS.Start();
        prRunIIS.WaitForExit();
        output = prRunIIS.StandardOutput.ReadToEnd();
    }
    return output;
}

Dieser Code hat bisher einwandfrei funktioniert. Ich habe nur Bedenken, dass der Installationsteil viel Zeit in Anspruch nimmt.

Jetzt habe ich die Möglichkeit, einige der Codes neu zu schreiben und die Benutzeroberfläche des Installationsprogramms zu ändern. Ich bin gerade zu diesem Teil gekommen und habe mich gefragt, ob dies die einzige Lösung ist, um IIS aus dem Code zu installieren, oder gibt es einen besseren Weg, den ich nicht gefunden habe?

Ich bin nur neugierig zu wissen, was die anderen Möglichkeiten sind, um IIS zu installieren. Antworten für Windows 8 sind ebenfalls willkommen.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage