2012-02-07 84 views
1

我使用維克斯安裝應用&服務,我怎樣才能知道是否是媒體鏈接安裝在我的Windows服務使用WiX的

如果我安裝了第一次的服務,我想這是「已禁用」並且可以通過在serviceInstall元素中設置字段Start =「disabled」來正常工作。

如果我安裝(升級)的服務,而這是媒體鏈接安裝在計算機上,並設置爲「自動」,我希望該服務爲「自動」升級後過了,我不能讓這種行爲,服務升級並設置爲「禁用」。

我試圖通過使用2個serviceInstall元素,在其中一個開始=「禁用」,並在另一個開始=「自動」。

我向我的每個serviceInstall添加了一個條件,詢問服務是否安裝了allready。 我猜我的條件不好....

這是什麼最好的方法?

非常感謝

回答

0

我最近遇到了類似的問題,以及,我的方式走近它使用的是安裝後的自定義操作。它會是這個樣子:

<CustomAction Id="SetStartUpType" BinaryKey="CA.SetStartUpType" DllEntry="CustomAction" Execute="immediate" Return ="check"/> 
<Binary Id="CA.SetStartUpType" SourceFile="../WixCustomAction/bin/$(var.BUILD)/WixCustomAction.CA.dll" /> 

<InstallExecuteSequence> 
    <Custom Action='SetStartUpType' After='InstallFinalize'>Installed</Custom> 
</InstallExecuteSequence> 

設置爲「已安裝」的自定義操作條件確保它只有在已經安裝它改變了啓動類型。因此,在您的wix文件中,您可能只需要一個start =「disabled」的serviceinstall元素即可禁用第一個安裝。

感謝Peter Kelly,有一種方法可以在自定義操作文件中手動更改服務啓動類型並啓動服務(如果願意)。詳情可以發現here

+0

我用的是custoAction,它工作的很好,謝謝! – user1192369 2012-02-13 12:27:41

相關問題