2011-08-17 55 views
0

我試圖在64位計算機上安裝IIS。 安裝是一個32位c#應用程序。從帶有32位應用程序的64位計算機上的c#代碼安裝IIS

的代碼如下(從here拍攝):

Process proc = new Process(); 
string cmd = @"C:\Windows\System32\pkgmgr.exe"; 
string cmdargument = 
      @" start /w pkgmgr /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-ISAPIExtensions;IIS-ISAPIFilter;IIS-HealthAndDiagnostics;IIS-HttpLogging; 
      IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-Security;IIS-WindowsAuthentication; 
      IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-WebServerManagementTools; 
      IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;WAS-WindowsActivationService; 
      WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI;NetFx3"; 

proc = Process.Start(cmd, cmdargument); 
proc.WaitForExit(); 
proc.Close(); 

當應用程序被編譯爲 「AnyCPU」 一切工作正常。 但是它是用「x86」編譯的,PkgMgr窗口顯示一個錯誤:「試圖加載一個格式不正確的程序」。

我也嘗試從wow32文件夾運行PkgMgr,但它沒有工作。

有什麼想法?謝謝。

+0

很難想出一個不使用AnyCPU的理由。 –

+0

安裝程序應用程序正在運行一些必須使用x86編譯的代碼。否則,這將是最好的解決方案。 –

回答

0

我想我找到了一個解決方案,它不是最優的,但它的工作原理。 我用AnyCPU編譯包裝PkgMgr執行並完成工作。

我還想找一個更「正確」的解決方案。

相關問題