When you are developing an application to run as a service it’s nice to be able to also run it as a console app so you can easily debug, etc. On the rare occasion you might even want to find out if your app is running in a console window at runtime so you can set the title of the console window to display some useful debugging information, for example.
After some quick digging around, I found a relevant question on StackOverflow and the answer here, all you need is a simple method like this:
1: public bool IsService()
2: {
3: var entryAssembly = Assembly.GetEntryAssembly();
4: var entryPoint = entryAssembly.EntryPoint;
5:
6: // add a little error handling to make sure there is a BaseType
7: return
8: entryPoint.ReflectedType.BaseType != null &&
9: entryPoint.ReflectedType.BaseType.FullName == "System.ServiceProcess.ServiceBase";
10: }
Did not work for me