ローカルでテストするか、ビルド サーバーのコードをコミットするかに応じて、以下のコードを切り替える必要があることがよくあります。
/// <summary>
/// Main entry point to the application.
/// </summary>
public static void Main()
{
// Don't forget to uncomment this if committing (!)
//var servicesToRun = new ServiceBase[] {new myservice()};
//ServiceBase.Run(servicesToRun);
// and re-comment this
RunAsConsoleApp();
}
コードでテストして出力タイプを伝える方法があれば、本当に便利です。つまり、「ああ、コミットしてビルドを壊した」という時間の浪費をすべて回避できます。
if (IsConsoleApp)
{
Using(var host= new ServiceHost(typeof(myservice))
{
host.Open();
etc....
}
}
else
{
var servicesToRun = new ServiceBase[] {new myservice()};
ServiceBase.Run(servicesToRun);
}