2011-03-12 272 views
0

我必須遷移我們目前的軟件安裝到能夠在Windows 7安裝在Windows 7

這是在Visual C一個MFC應用程序++安裝。安裝並不複雜,但確實有一些複雜性。它必須檢測以前是否安裝了其他軟件才能啓動msi文件,如果不是,請讓用戶安裝它。有一些合併模塊和嵌套msi,一些自定義操作(在dll,vbscript等中)。我們的一個要求是,非管理用戶必須能夠安裝該軟件。最好在安裝啓動後不必同意任何消息。

我認爲它現在完成的方式有點混亂,我不想只是遷移,而是做一個重構,讓事情變得更好。所以我想提供一些建議,一個有最佳實踐的網站,一些書(最好是有關Windows 7安裝的具體信息)。任何形式的幫助將不勝感激。

順便說一下,我們現在正在使用InstallShield,但如果有的話,我不介意更改爲更好的工具。

has anyboy使用InstallShield LE for Visual Studio 2010?值得嘗試一下嗎?

感謝,

哈維爾

回答

1

NSIS安裝有大量的功能,包括你所提到的。

+0

謝謝你vissi。但我正在尋找更多的書籍/文章與最佳做法和Windows 7安裝。如果你推薦這個工具,請告訴我你爲什麼認爲它比InstallShield更好。 – 2011-03-14 08:43:33

+0

嗯,在我看來有兩個主要優勢:小的安裝程序大小(開銷是~100kb),installshield軟件包的大小通常是幾MB,它是可腳本化的並且有很多常用的插件,你可以檢查.net framework,java等安裝在機器上;您還可以按照自己的喜好設計安裝程序界面。 – vissi 2011-03-14 10:44:29

0

我不認爲有一本書只處理Windows 7的安裝。雖然有關於如何編寫安裝程序的文章。

這是最好的開始Microsoft User Experience Guidelines for Setup

用戶不喜歡安裝軟件,所以現代的安裝體驗需要簡單,高效,無故障。

如果你只能做三件事情...

  1. 使安裝一樣簡單而輕便越好。請記住,用戶不喜歡設置,他們忍受它。仔細查看每個問題,選項,頁面和路徑,並修剪掉完成設置不重要的所有事情。
  2. 適用於所有設置方案,包括無人值守安裝,腳本安裝和卸載。對於有效的無人值守安裝,請確保設置階段之間存在乾淨的分離。
  3. 設計您的安裝程序,以便用戶可以自行解決設置問題,還可以記錄技術支持所需的信息以防萬一。請記住,設置是所有用戶必須成功完成的一項任務。

準則First Experience,這是第一個應用程序,也都是值得一讀。
一篇較舊的文章Redesign Your Application's Installer討論了關於共享組件的分離可執行文件和數據(每個用戶和每臺機器)等等。


在你的情況下,由於設置需要檢測,如果他們錯過安裝附加組件,它更好地使用安裝引導程序。

你有兩個選擇:

  1. 提升與引導程序,然後運行升高完成安裝。
  2. 只有當您需要安裝附加組件,您的應用程序的先決條件時才提升。

第二個選項僅適用於你的應用程序可以通過標準的用戶的安裝,即每用戶安裝,而不是每機器所有用戶。在這種情況下,如果其他組件需要提升才能安裝,並且至少其中一個未安裝,則啓動提升進程以安裝所有先決條件。完成後,您繼續以標準用戶身份安裝應用程序。

問題是隻顯示一次UAC確認:如果每個先決條件都顯示他們自己的UAC確認,那真的很煩人。