答えて

1

MSDNには、Windowsサービスとインストーラの作成時にtutorialがあります。

0

それはかなり呼び出すだけだ:

net stop "MyService" 
intallutil.exe /u MyService.exe 

// Copy your exe into place 
installutil.exe MyNewService.exe 

// optional 
net start "MyService" 

をこれは古いサービスを停止しますが、それをアンインストールし、その後、コピーは場所に新しいが、それをインストールし、(任意で)それを開始します。

ほとんどのインストーラはこれを非常に簡単にします。他の唯一の "犯人"は、サービスが起動時に自動的に実行されるようにインストールされる場合、インストーラがネットワークパスではなくローカルドライブにインストールされるように制限することです。

+0

配備プロジェクトにそのバッチファイルスクリプトを含めるにはどうすればよいですか? –

+0

CustomActionを作成し、それらのコマンドを実行する必要があります。 –

0
  1. Visual Studioで、サービスプロジェクトのサービスファイル(myservice.vbまたはmyservice.cs)に移動します。

  2. デザインビューを右クリックし、プロパティを選択します。

  3. [Porperties]ウィンドウの下部には、[インストーラの追加]リンクがあります。クリックして。

  4. ServiceInstallerプロパティとServiceProcessInstallerプロパティを確認してください。

  5. は実行、コマンドプロンプトで、以前のバージョンをアンインストールするために、プロジェクト

  6. をコンパイルします。Installutil.exeは、コマンドプロンプトで、インストールする

  7. を/uc:\myfolder\myservicefile.exe 、実行:Installutil.exe c:¥myfolder¥myservicefile.exe

thatsそれを実行します。

Installutil.exeは、Windowsディレクトリのどこかのフレームワークフォルダにあります。プロジェクトに含める必要はありません。

0

私は自分のアプリケーションのためNSISを使用して、サービスをインストールするためにあなただけのSCコマンドを使用します。

ExecWait 'sc create MyService binpath= "$INSTDIR\MyService.exe"' 
ExecWait 'sc start MyService' 

とアンインストールのために:

ExecWait 'sc stop MyService' 
ExecWait 'sc delete MyService' 
素晴らしい作品

0

既にインストーラを作成している場合は、セットアッププロジェクトではあまり多くの作業がありません。 Visual Studioから直接インストールしてアンインストールできます。ウェブ上に良いチュートリアルがあります。あなたがに実行され、それらに対処する方法を

2サービスに関連する問題:

  • あなたがサービスをアンインストールし、しかし、あなたは、あなたがエラーメッセージが表示されますので、そのサービスを再インストールすることはできません削除が保留されているため、再起動が必要です。 => Windowsサービスマネージャを閉じます。参照をすべて解放し、サービスを再インストールすることができます。

  • アンインストールする前にサービス実行可能ファイルを削除したため、レジストリをクリーンアップするためにアンインストールできません。 =>私はこれを完全に避ける以外に、その解決策はありません。

関連する問題