我正在創建一個安裝程序,它正在創建註冊表值並在卸載時將其刪除。但是,我正在使用的某些註冊表值可能會與其他配套應用程序共享。我只希望它刪除註冊表值,如果它是使用這些註冊表的唯一組件。如果安裝了其他使用這些註冊表值的應用程序,我的卸載程序不應刪除它們。我將如何去創造這個條件?處理共享註冊表值
Q
處理共享註冊表值
0
A
回答
0
我認爲你要尋找的是通過使用基本MSI組件規則來實現的:
- 所有的MSI是設置此共享的註冊表值必須設置爲的keyPath該組件的值。
- 組件需要有相同的組件guid。
如果這些在所有MSI中都是通用的,那麼當一個產品被卸載時,註冊表值只應該減少它的refcount而不是刪除整個值。
0
建立在jbudrea的答案,對我來說,這是一個合併模塊有用的場景。您可以在10個安裝程序中擁有10個組件,並希望您保持GUID同步,或者您可以在合併模塊中執行一次並引用它10次。不要重複自己(幹)。這主要用於註冊表數據,如COM註冊或文件擴展處理程序。
對於某些數據(如配置數據),永久性組件可能有意義。足跡很小,在您卸載所有內容然後重新安裝其中一個產品後,仍然有數據仍然存在。這也假定你正在做一些屬性持久性模式。
配置數據的最後一個想法是在安裝時根本不會這樣做。相反,在第一次運行應用程序時保存設置,現在安裝將無法管理它,並且會像上面那樣在卸載時將其保留。 (我喜歡將配置數據視爲用戶數據,通常是MSI說的留下的配置數據。)
相關問題
- 1. WSO2 BAM +共享註冊表
- 2. 檢查Windows批處理註冊表值
- 3. Lua註冊表:它由線程共享?
- 4. 共享點重新註冊
- 5. WSO2 API管理器 - 共享的註冊表
- 6. 在Google Glass上註冊共享意圖
- 7. Android登錄/共享偏好註冊
- 8. PHP註冊表格無法處理
- 9. 批處理腳本註冊表建議
- 10. VBA:預處理時訪問註冊表
- 11. 沒有.NET的C++註冊表處理
- 12. NT註冊表處理行爲
- 13. 批處理文件搜索註冊表
- 14. 如何處理長註冊表格
- 15. 如何處理共享DB
- 16. 多處理 - 共享陣列
- 17. 多處理數據共享
- 18. 在android中註冊會話像所有活動共享的值
- 19. 通過批處理文件從註冊表中讀取值
- 20. 批處理文件命令查詢註冊表項的數值
- 21. 使用註冊表值開始批處理
- 22. WSO2:Greg和ESB共享註冊表問題
- 23. 跨ESB集羣共享註冊表和配置空間
- 24. Windows 7通過註冊表在用戶之間共享數據
- 25. 使用共享的跑步者訪問gitlab註冊表
- 26. 如何在遠程計算機上共享Windows註冊表?
- 27. 在WSO2中跨多個羣集共享註冊表空間
- 28. 與註冊表項共享一個文件夾
- 29. 如何爲WoW64和x64流程創建共享註冊表項
- 30. 編輯註冊表項並用批處理文件打開註冊表