2012-02-07 8 views
1

を使用して、知ることができ、私のWindowsサービスが出回っインストールされている場合、どのように私はアプリケーション&にサービスをインストールするためのWIXを使用WiXの

私が初めてサービスをインストールした場合、私はそれが「無効」になりたいですこれはserviceInstall要素でStart = "disabled"フィールドを設定することで正常に動作します。

サービスが既にコンピュータにインストールされていて、「自動」に設定されているサービスをインストール(アップグレード)した場合、アップグレード後もサービスが「自動」になりたいサービスはアップグレードされ、「無効」に設定されます。

2つのserviceInstall要素を使用して、これを実行しようとしました。そのうちの1つはStart = "disabled"で、もう1つはStart = "Auto"です。

サービスがすべてインストールされているかどうか尋ねる私のserviceInstallに条件を追加しました。 私の条件は良くないと思います....

これにはどのような方法が最適ですか?

どうもありがとう

答えて

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

関連する問題