release_2.7.0
·
18 commits
to master
since this release
Dependency Updates
- winfsp.net updated from
2.2.26112→2.2.26183 - SharpSevenZip updated from
2.0.99→2.0.100
Improvements
WinFsp Version Enforcement
- Mounting is now blocked when the installed WinFsp driver version is older than required, instead of showing a warning dialog and allowing a potentially broken mount. A clear error dialog is shown with the version mismatch details.
- Added a native DLL pre-load check before attempting to mount. If the WinFsp native DLL cannot be loaded (missing, wrong architecture, corrupted install), the mount fails early with a descriptive error instead of crashing.
TypeInitializationExceptioncaused by a WinFsp DLL version mismatch duringFileSystemHostcreation is now caught and handled gracefully with a user-friendly error dialog.
Extraction Resilience
- Disk-cached extraction now has a SevenZip fallback: if the primary extraction fails (corrupt data, unsupported compression), the system automatically attempts extraction via the SevenZip library before marking the entry as failed.
SevenZipFallback.TryExtractEntryno longer throwsObjectDisposedExceptionwhen called after disposal — it returnsfalseinstead, improving robustness during shutdown.OpenDiskCachedStreamnow returnsnullon extraction failure instead of propagating exceptions, allowing callers to handle the error gracefully.
Error Classification
TypeInitializationExceptionwithFsp.Interopinner exceptions (missing/outdated WinFsp) are now classified as known non-fatal errors and won't be reported as app bugs.NullReferenceExceptionoriginating from SharpCompress is now classified as a known library limitation.- Additional exception types (
ArgumentNullException,ArgumentException,IndexOutOfRangeException) originating from compression libraries are now handled as extraction failures, improving fallback coverage for corrupt or malformed archives. - WinFsp version mismatch errors are no longer reported via
ErrorLoggersince they are environment issues, not application bugs.
Code Quality
- Extracted
FindWinFspBinDir()as a separate method, reducing duplication inEnsureWinFspOnPath. - Semaphore release in
OpenDiskCachedStreamis now wrapped intry/catchforObjectDisposedException, preventing crashes during shutdown. - Removed the unused
ShowWinFspVersionMismatchWarningDialogmethod. FindWinFspBinDirnow falls back toSOFTWARE\WinFspregistry key, matching the behavior of other WinFsp detection methods.
Full Changelog: release_2.6.2...release_2.7.0