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