我需要在繼續安裝之前檢查系統中是否已安裝某些服務。 也就是說我已添加如何使用自定義動作的條件?
<Condition Message="Svc must be installed">
Installed OR SVC_V1
</Condition>
但是我可以檢查它是否僅通過使用自定義操作安裝,因爲Svc是Windows服務。我如何在這種情況下使用CA?
我需要在繼續安裝之前檢查系統中是否已安裝某些服務。 也就是說我已添加如何使用自定義動作的條件?
<Condition Message="Svc must be installed">
Installed OR SVC_V1
</Condition>
但是我可以檢查它是否僅通過使用自定義操作安裝,因爲Svc是Windows服務。我如何在這種情況下使用CA?
實際上,您不需要自定義操作來檢測您的服務。服務中獲得HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\
下注冊的,所以你可以使用RegistrySearch:
<Property Id="SVC_V1">
<RegistrySearch Id='RegSampleService'
Type='raw'
Root='HKLM'
Name='ImagePath'
Key="SYSTEM\CurrentControlSet\services\YourService" />
</Property>
然而要注意的註冊表讀取權限是必需的。
自定義操作設置可用於評估條件的屬性。
我通常使用自定義操作,因爲我們想知道服務是否設置爲自動並且不僅運行它而且運行它。 – 2012-01-10 01:40:42
確實如此,但他要求「檢查一些服務是否已安裝」。 – KMoraz 2012-01-10 08:12:24
是的,理解。但作爲一名防禦性程序員,通常當有人問這個問題時,這意味着他們對實際運行的服務有依賴性。例如,檢查mssqlserver是否存在和/或正在運行會對安裝程序產生很大影響。 – 2012-01-11 14:08:36