2011-04-07 148 views
18

我很困惑。現在我使用C++和Java編寫一些小應用程序,但不需要安裝它們。爲什麼需要安裝瀏覽器,媒體播放器,遊戲等「大型應用程序」?爲什麼應用程序需要安裝?

+0

您如何運行Java應用程序? – 2011-04-07 15:11:27

+0

好問題,以及偶爾偶爾想起我自己的事情。我總是認爲這是因爲「大型應用程序」使用的註冊表值(可能)需要配置爲安裝過程的一部分。 – 2011-04-07 15:13:07

+0

如果您的應用程序依賴於除系統庫之外的任何庫,則需要首先在C++中發佈這些庫,您可以將該dll文件放在應用程序的文件夾中以使其適用於需要註冊的activex。爲了使不需要在mfc應用程序中安裝的應用程序選擇靜態庫而不是共享庫。依賴walker可能會幫助你很多「http://www.dependencywalker.com/」它會告訴你你的應用程序依賴於什麼?系統像「shell32.dll,gdiplus.dll,...」的所有系統都不需要發佈。 – ahmedsafan86 2011-04-07 15:14:55

回答

12

有以下幾個原因:

  1. 他們掛鉤到系統中。當您安裝瀏覽器時,如果您打開以「http://」開頭或以「.html」結尾的文件,它將啓動。

  2. 使用應用程序的用戶用於安裝它們。如果您的應用程序不附帶安裝程序,用戶會感到困惑,因此無法啓動並運行。他們不明白安裝過程中會發生什麼,他們只知道他們總是需要這樣做。因此,一些應用程序(不需要安裝程序)只有一個簡單的安裝程序才能避免混淆。

  3. 很多複雜的應用程序都可以用各種方式做事。您可以在安裝過程中更改預設。一個常見的例子是安裝應用程序的哪些部分。對於CAD系統,您可以在會議室安裝整個設備或僅安裝PC的查看器。

  4. 許多應用程序要求許可密鑰和/或在線身份驗證以避免盜版。

  5. 許多應用程序都帶有DLL。爲了確保他們的工作,他們覆蓋在窗口的系統目錄下的所有DLL(也可能打破所有其他應用程序,但誰在乎;-)

2

主要是因爲它們寫入系統範圍的數據或目錄。例如,Windows應用程序寫入註冊表並可能C:\ windows \ system32。 UNIX應用程序傾向於寫入主目錄中的隱藏配置文件(例如,將自身添加爲打開特定文件類型的選項),/ usr/share和/ etc。這是除了實際的二進制文件和庫(可能會進入/ usr/bin和/ usr/lib)。

您的應用程序可能是自包含在一個目錄中,這就是爲什麼它不需要安裝。

+0

這裏提到的一切都可以在沒有安裝的情況下完成 – user1363516 2016-09-27 19:16:00

2

好一個主要的原因是共享庫(例如DLL文件在Windows中) - 而不是它自己的一個DLL的副本,每一個應用程序,這個想法是把它在系統目錄中,所有的應用程序可以訪問它。避免重複的副本可節省磁盤空間。

要確保一切都在正確的地方結束了,因此,你需要一個安裝程序 - 它不再是簡單的只是複製/粘貼包含您的應用程序的目錄。

5

通常,因爲他們想要與計算機存儲狀態和信息。例如,您的應用程序不會出現在「添加/刪除程序」窗口中。許多程序(我個人不喜歡)喜歡在註冊表中存儲重要信息以進行查找,這意味着您通常需要卸載程序(而不是刪除程序)來執行清理,或者可能會將擴展程序引入到資源管理器或其他項目中。簡單地刪除該程序將不會清除這些添加內容,因此您需要卸載程序。

0

因爲他們做的事情一樣:

  • 寫入註冊表值不同 依賴
  • 複製數據
  • 創建目錄

1

安裝只是意味着複製文件和設置註冊表設置。應用程序越大,遵循標準程序越容易。

當一個應用程序「安裝」:

  • 創建了用戶的便利卸載
  • 設置默認設置在註冊表(在Windows上)
  • 建立在用戶的默認設置profile
  • 將可執行文件複製到標準位置

幕後沒有任何魔法,只是讚美複製。例如,

2

可能有很多原因。

  • 確保依賴安裝(等。NET框架)
  • 添加快捷方式到桌面/開始菜單
  • 服務需要使用
  • 很多用戶註冊的喜歡這個,而不是管理,其中的程序文​​件住自己
  • 將註冊表項添加
  • 添加掛鉤Windows資源管理器
相關問題