標籤:top 標準 install 判斷 存在 str com 過程 空間
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
為自己編寫的windows應用程式製作安裝包