質問

Visual Studio 2008を使用して、C#でWindowsサービスを作成しました。http://www.codeproject.com/KB/dotnet/simplewindowsservice.aspx

記事の指示に従ってセットアップ プロジェクトを作成し、実行しました。私のサービスは c:\program files\product などにインストールされます。ただし、サービス リストには表示されません。

私には何が欠けているのでしょうか?

役に立ちましたか?

解決

リンクした記事の最も重要な部分はここです

カスタム アクションをセットアップ プロジェクトに追加するには

1.ソリューションエクスプローラーで、セットアッププロジェクトを右クリックし、表示して表示し、カスタムアクションを選択します。カスタムアクションエディターが表示されます。

2.カスタムアクションエディターで、カスタムアクションノードを右クリックし、[カスタムアクションの追加]を選択します。プロジェクト]ダイアログボックスの選択アイテムが表示されます。

3. [リスト]ボックスのアプリケーションフォルダーをクリックして開き、myNewService(Active)からプライマリ出力を選択し、[OK]をクリックします。プライマリ出力は、カスタムアクションの4つのノードすべてに追加されます。インストール、コミット、ロールバック、およびアンインストールです。

4.セットアッププロジェクトをビルドします。

これらの手順をスキップすると、セットアップ プロジェクトがビルドされ、ファイルが正しいディレクトリにコピーされます。ただし、これらの手順を実行しないと、バイナリはサービスとして登録されません。


また、これは、セットアップ/デプロイメント プロジェクト テンプレートが組み込まれている古いバージョンの Visual Studio でも機能することにも注意してください。Visual Studio の新しいバージョンには、異なるセットアップ/展開プロジェクトがあります (一部のプロジェクトにはサードパーティ ソフトウェアが必要です)。

調べてみることをお勧めします WiX ツールセット ここをチェックしてください Windows サービスの WiX インストール。

他のヒント

私はそれに念の誰実行でそれをここに入れているようです。

私は、このいずれかで顔に所有してしまいました あなたはガイドの指示に従ったが、まだインストールの問題がある場合は、

は、確実にあなたのインストーラクラスはpublicです。内部はしません仕事ます。

私はこの同じ問題を持っていたし、私は私がのServiceInstallerの親を設定しないことに気づきます。

プロジェクトのインストーラをダブルクリックします。設計者は、サービスのインストーラやプロセスのインストーラが表示されるはずです。あなたはどちらかをクリックしてプロパティを表示すると、あなたが両方のプロジェクトインストーラのクラス名に設定する必要があります親の属性に注意する必要があります。

それとも、あなたはコードでそれを行う場合は、必ず設定してくださいます:

serviceInstaller.Parent = this;

serviceProcessInstaller.Parent = this;

設置時のサービスは、使用をお奨めいたします。 NSSM, るた私にとってすべての私WinServiceます。でインストールできず実行可能なものの場合.bat,.cmd)サービスとして、保証サービスは常に最新のものにいよいよスタートしました。

このツール:

  1. ダウンロード こちらの

  2. 指示に従って こちらの

ストレージエンジンはインデックサービス一覧ですが、いよいよスタートしました。

は、次の手順に従い、彼らが私のために働きました。特にセットアップのために、その部分は、物品の底部付近にある。

MSDN:チュートリアル:Windowsサービスの作成

Visual Studioの2013 Iで

は、サービスアプリケーション用のInstallShieldテンプレートを使用して、同じ問題に遭遇しました。 //visualstudiogallery.msdn:セットアッププロジェクトテンプレート HTTPSを使用している場合しかし、それは魔法のように動作します.microsoft.com / 9abe329c-9bba-44A1-be59-0fbf6151054dする

ダウンロードセットアッププロジェクトテンプレートが近いあなたのメーカーは、このインストールを実行して、Studioを起動し、

ので、これは動作します。

ダン。

このチュートリアルからtgeek001からCodeProject.com いいます。いつもこちらでお分かりになったの投稿記:1.イベントハンドラのコードサービスを停止することが前にアンインストールで 2.特定の条件や物性をカスタムアクションのコードで設定を防ぐために失敗(これらの固定式のエラー1001いを経験しながら、指示を受け答え以上) 3.勝つサービスプロパティの削除"を以前のバージョン"ドロップダウンをtrueに設定する

http://www.codeproject.com/Tips/575177/Window-Service-Deployment-using-VS

以下、上記のチュートリアルのためのカスタムアクションの設定の場合):

  • インストール、設定の条件の下"NOT(インストールまたはPREVIOUSVERSIONSINSTALLED)"
  • アンインストール、設定の条件の物件:"なUPGRADINGPRODUCTCODE"
  • コミット:設定"カスタムアクションデータ"の分野:/OldProductCode="[PREVIOUSVERSIONSINSTALLED]"

最後に、WinServiceクトに設定してくださいドロップダウンの削除"を以前のバージョン"があります。

乾杯

私はあなたのインストーラクラスはずっとサービスと同じプロジェクトにあることを発見しました。インストーラは、サービスが参照するライブラリプロジェクトには存在しないことができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top