為自己編寫的windows應用程序制作安裝包


1 寫好了一個windows程序之后如何制作安裝包

這個在vs中就可以直接發布了,可以制作msi的安裝包和exe的安裝包。

2 window應用程序安裝包做了哪些事情

rpm安裝包的話,只是把相應的文件拷貝到不同的目錄。那么window安裝包做了什么呢?

msi里面有一個table,里面是一條條的指令,windows installer會解釋並執行這些指令。

它還是會把安裝包里面的文件拷貝到相應的目錄。關鍵是它除了拷貝還做了哪些事情呢?

 

3 安裝包除了把相應的文件放到不同的目錄下,還做了哪些事情,比如注冊表

第一,將安裝的產品告訴給系統。

第二,查找系統是否有我需要的某個文件,不如某個動態庫。

第三,計算本次安裝需要占用的磁盤空間的大小,判斷當前的磁盤空間是否夠。

第四,修改注冊表。

 

4 安裝包操作注冊表是為什么?注冊表在程序安裝和運行過程中起到了什么作用

可以在制作安裝包的時候向注冊表中添加鍵值對,這個鍵值對可以在代碼中訪問。

 

 

5 windows installer

5.1 windows installer解析windows安裝包中的指令table,完成安裝過程

5.2 windows installer的標准動作

安裝包中被windows installer使用的tables:

有很多的tables

 

5.2.1 發布產品、特性和部件的action

就是把產品、特性和部件告訴給windows系統。

5.2.2 文件查找action

安裝的時候,查找系統中是否存在某個文件。

5.2.3 file costing action

看當前的安裝需要消耗多少的磁盤空間。

5.2.4 文件安裝action

就是講指定的文件從源目錄拷貝到目的地目錄。

5.2.5 修改注冊表action

當部件和文件都安裝到目的地目錄之后,就可以修改注冊表了。只有在文件安裝action執行完成之后,才能執行注冊表修改action。

5.2.5.1 RegisterClassInfo action

注冊安裝部件的COM類信息。

5.2.5.2 RegisterExtensionInfo action

 

5.2.5.3 RegisterProgIdInfo action

5.2.5.4 RegisterMIMEInfo action

5.2.5.5 WriteRegistryValues action

5.2.5.6 RemoveRegistryValues action

這個是卸載的時候執行的。

 

參考資料:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa372022(v=vs.85).aspx

orca tool

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370557(v=vs.85).aspx

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM