/// <summary>
        /// 
        /// </summary>
        /// <param name="serviceDisplayName">null for using the assembly name.</param>
        /// <param name="serviceName">null for using the assembly name.</param>
        public EasyService(string serviceDisplayName = null, string serviceName = null)
        {
            var assemblyName = Assembly.GetEntryAssembly().GetName().Name;
            _serviceDisplayName = serviceDisplayName ?? assemblyName;
            serviceName = serviceName ?? assemblyName;

            _serviceManager = new WindowsServiceManager(_serviceDisplayName);
            _registryManipulator = new RegistryManipulator(serviceName);

            InternalService.OsStarted += Start;
            InternalService.OsStopped += Stop;
            ProjectInstaller.InitInstaller(_serviceDisplayName,serviceName);
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="serviceDisplayName">null for using the assembly name.</param>
        /// <param name="serviceName">null for using the assembly name.</param>
        public EasyService(string serviceDisplayName = null, string serviceName = null)
        {
            var assemblyName = Assembly.GetEntryAssembly().GetName().Name;

            _serviceDisplayName = serviceDisplayName ?? assemblyName;
            serviceName         = serviceName ?? assemblyName;

            _serviceManager      = new WindowsServiceManager(_serviceDisplayName);
            _registryManipulator = new RegistryManipulator(serviceName);

            InternalService.OsStarted += Start;
            InternalService.OsStopped += Stop;
            ProjectInstaller.InitInstaller(_serviceDisplayName, serviceName);
        }