release_2.4.0
What's New
Screenshot Capture (F8)
Press F8 to capture a screenshot of the application window. Screenshots are saved as PNG files in the Screenshot folder inside the application directory. This is handy for sharing your setup, reporting UI issues, or documenting settings.
Serilog Logging Infrastructure
The entire logging system has been migrated to Serilog with structured logging:
- On-screen log viewer — Messages still appear in real time via a custom
UiLogSink. - Rolling daily log files — All messages are written to
%LocalAppData%\BatchConvertToRVZ\logs\with 14-day retention and 10 MB size limits. - Automatic bug reporting — Warning and Error level events are automatically forwarded to the bug report API through a dedicated
BugReportSink. No more manualReportBugAsynccalls scattered across services.
Redesigned Settings Panels
GroupBox controls have been replaced with collapsible Expander panels that are collapsed by default. This reduces visual clutter in the Convert, Verify, and Extract tabs, showing only the settings you need when you need them.
Updated Color Scheme
- Terminal output is now white (
#ffffff) instead of green — cleaner and more readable. - All action buttons (Start, Cancel, About, Exit) now share a unified cyan/sky-blue color palette (
#00bcd4), replacing the previous multi-color scheme.
Process Error Dialog Suppression
A new ProcessHelper.SuppressErrorDialogs() method prevents Windows error dialogs (like "Ignore and continue?") from blocking batch operations when DolphinTool encounters issues. The error mode is set before spawning DolphinTool processes.
Improved Error Dialog Safety
The blocking .GetAwaiter().GetResult() call for showing MessageBox from non-UI threads has been replaced with a safer Application.Current.Dispatcher.Invoke() pattern, eliminating potential deadlocks.
Code Cleanup
- Removed XML documentation comments from service classes.
- Service constructors now accept
ILoggerdirectly instead ofAction<string>andFunc<string, Exception?, Task>delegates. ConversionService,ExtractionService, andVerificationServicelog through Serilog with source context via.ForContext<T>().- Global exception handlers in
App.xaml.cslog through Serilog and use a dedicatedTryReportFatalmethod for direct bug reporting on fatal crashes.
Dependencies
- Serilog 4.4.0
- Serilog.Sinks.File 7.0.0
- Microsoft.NET.Test.Sdk updated to 18.7.0
Upgrade Notes
- No migration steps required. This release is backwards-compatible with previous version settings and workflows.
- Log files are automatically created and managed — no user configuration needed.
Full Changelog: release_2.3.1...release_2.4.0