我正在編寫Wix C++自定義操作來檢測SCCM 2012是否已安裝。我正在通過從註冊表中讀取產品GUID來執行此操作:SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\
如何檢測SCCM 2012是否安裝?
但是,在安裝了SCCM 2012的系統上沒有這樣的功能,因此在註冊表中沒有這樣的信息。
任何人都可以請指出我在正確的方向來實現這一目標嗎?
我想僅在SCCM 2012安裝時安裝我的軟件。
我正在編寫Wix C++自定義操作來檢測SCCM 2012是否已安裝。我正在通過從註冊表中讀取產品GUID來執行此操作:SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\
如何檢測SCCM 2012是否安裝?
但是,在安裝了SCCM 2012的系統上沒有這樣的功能,因此在註冊表中沒有這樣的信息。
任何人都可以請指出我在正確的方向來實現這一目標嗎?
我想僅在SCCM 2012安裝時安裝我的軟件。
您應該利用Condition這個元素。如果將它放置在產品或片段下,它將作爲啓動條件工作。瞭解更多關於發射條件here。
這個條件,你將作者將檢查一個屬性。如果您正在查找的軟件已安裝,並且沒有另行設置(這是最簡單的情況),則應該設置該屬性。爲了實現此目的,請編寫RegistrySearch元素,以便在找到正確的註冊表路徑的情況下定義屬性。 RegistrySearch元素應該是Property元素的子元素。
正如你所看到的 - 這裏沒有自定義操作,那太棒了! :)
您不應該依賴無證內部來檢測軟件 - 它們可以在沒有警告的情況下更改。 (例如,在升級過程中的產品代碼GUID的變化所以除非SCCM團隊已經表示,他們不會改變它,它可能改變SCCM 2012 RTM,甚至2012的更新。)
相反,看看球隊有記錄了一種檢測它的方法。大多數團隊記錄一個註冊表值,以檢測安裝了哪個版本等。如果他們不這樣做,你可能會更願意看註冊表,因爲價值觀不太可能消失。
非常感謝:) – Mark
非常感謝。這是非常有幫助 – Mark