Improvements
- Provide the executable for .NET Framework 4.0. (#147)
- With this binary patching of .exe.config is no longer required to get WinSW running on newer systems.
- Provide WinSW configuration file samples. (#170)
- Samples are available within release packages
- Introduce the new WinSW Extension Engine. (#42)
- Add new
SharedDirectoriesMapper
extension. See the docs here. (#42) - Add new
RunawayProcessKiller
extension. See the docs here. (#133) - Migrate event logging to Apache log4net. (#145, #73 and others)
- Use
FileStream#SafeFileHandle
the deprecatedFileStream#Handle
in the CLIredirect
mode. (#167)
Bug fixes
- Prevent CPU overutilization when waiting for the process to exit. (#135)
- Properly retrieve
waithint
,sleeptime
,resetfailure
, andstoptimeout
options from XML configs with metadata beforesettings
. (#175) - Print warnings in the
uninstall
command when the service cannot be uninstalled immediately. (#165) - Prevent failure when
stoparguments
are defined withoutstopexecutable
in the XML file. (#170) - Prevent failure during process termination if child processes cannot be retrieved due to the pending system shutdown. (#172)
- Security: Do not dump WinSW environment variables to the Event log. (#173)
- Do not propagate exceptions from
Process.Kill()
if the process actually exits. (#166)
Non-code changes
- Major documentation refactoring and update.
- Use GitHub Releases as a main release source.
- Jenkins Maven repository is no longer the main release source
- It will be periodically updated on-demand
- Introduce NuGet packaging and publishing.
- Releases are being published on Nuget
- Maven releases now pick releases from GitHub Releases. The package version is guaranteed to be same as the assembly version. (#162)
- Introduce the CI/CD flow being hosted on AppVeyor. The project page is here.
Compatibility notes
- WinSW v2 is fully compatible with WinSW v1 in terms of the command-line interface and configuration files.
- Any behavior difference will be considered as a bug
- New features like WinSW extensions are disabled by default. They can be enabled via the configuration file.