Windowsサービスの展開プロジェクトを作成するために必要なアイテムは何ですか?新しいバージョンをインストールする前に、以前のバージョンのサービスをアンインストールする必要があります。
5 に答える
MSDNには、Windowsサービスとインストーラーの作成に関するチュートリアルがあります。
私はアプリにNSISを使用しています。サービスをインストールするには、scコマンドを使用するだけです。
ExecWait 'sc create MyService binpath= "$INSTDIR\MyService.exe"'
ExecWait 'sc start MyService'
そしてアンインストールのために:
ExecWait 'sc stop MyService'
ExecWait 'sc delete MyService'
よく働く。
それはほとんどただ呼び出すだけです:
net stop "MyService"
intallutil.exe /u MyService.exe
// Copy your exe into place
installutil.exe MyNewService.exe
// optional
net start "MyService"
これにより、古いサービスが停止し、アンインストールしてから、新しいサービスを所定の場所にコピーしてインストールし、(オプションで)開始します。
ほとんどのインストーラーはこれを非常に簡単にします。他の唯一の「落とし穴」は、サービスが起動時に自動的に実行されるようにインストールされる場合、インストーラーがネットワークパスではなくローカルドライブにインストールするように制限されていることを確認することです。
Visual Studioで、サービスプロジェクトのサービスファイル(myservice.vbまたはmyservice.cs)に移動します。
デザインビューを右クリックして、プロパティを選択します。
[ポーパーティ]ウィンドウの下部に、[インストーラーの追加]リンクがあります。クリックして。
ServiceInstallerプロパティとServiceProcessInstallerプロパティを確認してください。
プロジェクトをコンパイルします
以前のバージョンをアンインストールするには、コマンドプロンプトで次のコマンドを実行します。Installutil.exe/uc:\myfolder\myservicefile.exe
インストールするには、コマンドプロンプトで次のコマンドを実行します。Installutil.exec:\ myfolder \ myservicefile.exe
それでおしまい。
Installutil.exeは、Windowsディレクトリのどこかにあるフレームワークフォルダにあります。プロジェクトに含める必要はありません。
インストーラーを既に作成している場合は、セットアッププロジェクトで行う必要のある追加の作業はそれほど多くありません。VisualStudioから直接インストールおよびアンインストールできます。Web上に優れたチュートリアルがあります。
発生する2つのサービス関連の問題と、それらに対処する方法:
サービスをアンインストールしましたが、サービスの削除が保留中であり、再起動が必要であるというエラーメッセージが表示されるため、再インストールできません。=>Windowsサービスマネージャーを閉じます。参照が解放され、サービスを再インストールできます。
アンインストールする前にサービス実行可能ファイルを削除しましたが、レジストリをクリーンアップするために「アンインストール」することはできません。=>これを完全に回避する以外に、その解決策はありません。