在用INNO SETUP制作安裝腳本時常常遇到DLL沒有注冊而安裝完成后運行程序出現錯誤的問題
經過一系列的搜索終於找到了解決方案 特此共享
代碼如下:
[Files]
Source: "DLL文件所在路徑"; DestDir: "{app}"; Flags:ignoreversion regserver
Source: "DLL文件所在路徑"; DestDir: "{app}"; Flags:regtypelib
代碼解析:
其中Flags:段的regserver參數就是注冊
在RUN段就是多余的
ignoreversion 忽略版本
regserver 注冊activeX DLl/OCX
regtypelib 注冊類型庫TLB
restartreplace 如文件在使用重啟替換
noregerror 注冊失敗不顯示錯誤信息
replacesameversion 替換相同版本
uninsnosharedfileprompt 卸載時不出現共享文件提示
sharedfile 設為共享文件
sharedfile 設為共享文件"
例:
你開發了一個xxx.dll,在第一個軟件soft.exe使用了此DLL,打包時使用了了共享,初次安裝測計數加一
再開發了第二個soft2.exe軟件,也是用了這個DLL,那么共享計數就為二。
兩個軟件都在一台機器上安裝了,當卸載其中一個軟件時,共享計數減一,因另計數未到0,所以此DLL不會卸載,當再卸載每二個軟件,計數已到0,說明系統中已沒有任何軟件使用此DLL了,卸載程序就會把此DLL卸載掉。