Skip to content

release_2.7.0

Choose a tag to compare

@drpetersonfernandes drpetersonfernandes released this 05 Jul 00:09
· 18 commits to master since this release

Dependency Updates

  • winfsp.net updated from 2.2.261122.2.26183
  • SharpSevenZip updated from 2.0.992.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.
  • TypeInitializationException caused by a WinFsp DLL version mismatch during FileSystemHost creation 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.TryExtractEntry no longer throws ObjectDisposedException when called after disposal — it returns false instead, improving robustness during shutdown.
  • OpenDiskCachedStream now returns null on extraction failure instead of propagating exceptions, allowing callers to handle the error gracefully.

Error Classification

  • TypeInitializationException with Fsp.Interop inner exceptions (missing/outdated WinFsp) are now classified as known non-fatal errors and won't be reported as app bugs.
  • NullReferenceException originating 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 ErrorLogger since they are environment issues, not application bugs.

Code Quality

  • Extracted FindWinFspBinDir() as a separate method, reducing duplication in EnsureWinFspOnPath.
  • Semaphore release in OpenDiskCachedStream is now wrapped in try/catch for ObjectDisposedException, preventing crashes during shutdown.
  • Removed the unused ShowWinFspVersionMismatchWarningDialog method.
  • FindWinFspBinDir now falls back to SOFTWARE\WinFsp registry key, matching the behavior of other WinFsp detection methods.

Full Changelog: release_2.6.2...release_2.7.0