2009-01-07 68 views
3

我在VS2008中創建了一個安裝項目。我的WinForms應用程序使用.NET 2.0,因此我選擇了.NET 2.0 Prerequisity並構建了安裝項目。使用MSI與我的應用程序安裝.NET Framework

當我在一臺乾淨的PC上運行我的Setup.msi時,它會正確檢測到.NET丟失並詢問是否應該安裝它。在成功安裝.NET之後,安裝程序退出並且不會繼續安裝我的應用程序(我認爲它應該)。

當我在已安裝.NET的PC上運行MSI文件時,我的應用程序安裝正確。

有什麼辦法如何一步安裝.NET 2.0和我的應用程序?

+0

MSI intaller會這樣做,但也許你需要更精確地配置它。對不起沒有太大的幫助,但我知道它可能。 – Krakkos 2009-01-07 09:28:45

回答

7

您是如何安裝產品的?

安裝項目將輸出兩個文件:

  • Windows安裝程序包(.msi)和
  • 所謂的引導程序(SETUP.EXE)

引導程序會檢查是否存在您指定的任何先決條件,並且如果它尚未安裝,可能會下載並安裝它,然後繼續安裝應用程序(通過調用.msi)。 因此,您應該始終啓動setup.exe來安裝應用程序,而不是.msi文件(除非您知道所有先決條件都在目標系統上)。

正如Krakkos所說,引導程序將安裝前提條件和您的應用程序(即.msi文件)。但是,我不知道任何配置設置會阻止引導程序安裝msi。

要排除故障,您可以嘗試創建安裝日誌並查找日誌文件中的任何問題。

1

謝謝Divo,

我正在運行MSI文件。

運行Setup.EXE文件時是否有任何限制?如果我記得正確的話,我曾試着在Windows 2000上運行它,但沒有運行。我能夠只運行MSI文件。我打算用乾淨的Win2000檢查電腦,然後回來。

編輯:我曾試圖在乾淨的Windows 2000 SP4和這裏的結果:

  • 的Setup.exe將與消息有關丟失HeapSetInformation Kernel32.dll中無法運行
  • 會的setup.msi ASO無法運行(.msi擴展名不詳)

然後我手動安裝的Windows Installer 3.1:

  • Setup.exe仍然不會運行相同的錯誤消息
  • Setup.msi將運行成功(但將安裝只有.NET沒有我的應用程序...我最初的問題)

在Windows XP上,Setup.exe運行沒有任何問題。

看來用Win2000的用戶將不得不通過安裝Windows Installer 3.1,.NET 2.0和我的應用程序手動安裝我的應用程序。即使手動安裝.NET,Setup.exe仍然會在Win2000 SP4下顯示相同的錯誤消息。

編輯:通過安裝Update Rollup 1 for Windows 2000 SP4 (KB891861)可以解決Win 2000問題。

0

This episode of Hanselminutes詳細瞭解Paint.Net如何安排下載&按需安裝所需的.NET框架,並與應用程序安裝集成。無可否認,這可能是大多數應用程序所需要的更復雜的方式,但仍然是一個有趣的討論。

相關問題