私は他の多くの会社のためにソフトウェアを構築する会社で働いています。インストーラーがVS2012に組み込まれていないことを知ったとき、私は展開方法に興味を持っていました。これまでのところ、PowerShellスクリプトを使用してクライアントサーバーに.exeをドロップしています。次に、本格的なWindowsサービスが必要です。
コンソールアプリケーションを介してサービスを実行する方法の多くの例を見てきました。 https://stackoverflow.com/questions/7764088/net-console-application-as-windows-service
sc.exe
このようなコンソールアプリケーションに基づいてサービスを作成します。しかし、WindowsがStart/Stop/Restartをどのように処理するかはわかりません。
このことから、コンソールアプリケーションとサービスの関係がWindowsの世界でどのような関係にあるのかが知りました。サービスは、OSが呼び出しを開始および停止できるようにするフックを備えたコンソールアプリケーションにすぎませんか?またはサービスは完全に異なりますか?
昔、WinFormsとコンソールアプリケーションはまったく異なるものだと思っていました。 Win32をいじり回した後、同じものであることに気付きました。
サービスがWinFormsのような単なるコンソールアプリであり、.NETで直接Start/Stop機能を利用できることを願っています。組み込みのインストーラープロジェクトはかなりひどいものだったので、.exeをサーバーにコピーするのはそれほど悪くありません。
コンソールアプリケーションがWindowsサービスとはまったく異なるとは言えません。どちらもコードを実行するホストです。そうは言っても、いくつかの重要な違いがあります: