使用.msi包時,如果它們不存在,我想創建一些註冊表項,如果它們存在,請將它們留在一邊,如果程序被刪除,則不要刪除它們。我已經通過向以下msi表添加條目來完成此操作(使用Orca):組件,FeatureComponents,Registry,& LockPermissions。我的問題是我應該如何處理這些鍵的組件表的ComponentID中使用的GUID?看起來有3種選擇。永久性註冊表項 - orca - msi guid
1)一次給他們,獨自離開他們在MSI
2)的未來版本的新版本產生
每次分配新3)使用NULL(每http://msdn.microsoft.com/en-us/library/aa368007(VS.85).aspx)我沒有試過這個。
其中之一是比其他優先嗎?相互之間會有什麼後果嗎? (如果程序被刪除,我寧願留下儘可能少的東西)。
我也很想知道下面關於永久屬性位(16)的意思是什麼意思。
如果設置了該位,則安裝程序在卸載過程中不會刪除該組件。 安裝程序在Windows Installer註冊表設置中爲該組件註冊一個額外的系統客戶端。
哪裏可能找到這些條目?
還有一個問題。您引用的MSDN參考中的「名稱」是什麼意思?從你的答案我認爲'姓名'是GUID或Component Table條目的Component和GUID字段的組合。順便說一句,我更喜歡1),因爲我可以用一個Orca transfrom做到這一點,而無需任何後續編輯。 – 2009-12-27 21:59:26
'name'表示已安裝資源的名稱,即文件名或註冊表項。 '兩個組件'是指'具有不同GUID的兩個組件'。 – 2009-12-28 16:53:17
好吧,我很確定我明白,但是如果沒有強烈的暗示,我不會得出這個結論。 – 2009-12-28 20:54:01