release_2.7.0
·
21 commits
to master
since this release
New Features
Startup Validation
- Application now detects if running from a temporary directory or directly from a compressed archive and prompts the user to extract to a permanent location before proceeding.
DAT File Validation
- Added file extension check — only
.datand.xmlfiles are accepted. - Added hint text below the DAT file path field: "Only No-Intro XML DAT files are supported."
- Improved error messages when incompatible formats are detected (ZIP, HTML, ClrMamePro, MAME).
Cloud Placeholder Support
- Cloud-only placeholder files (e.g., OneDrive files not downloaded locally) are now automatically skipped during validation and hashing operations.
- Skipped files are reported with a clear error message indicating the file needs to be downloaded first.
Duplicate File Handling
- Files that would overwrite existing files during rename operations now generate unique filenames instead of failing (e.g.,
game (1).rom,game (2).rom).
Improvements
Async Status Bar Updates
- All status bar messages now use an async pattern with cancellation support, improving UI responsiveness during long-running operations.
Rename Operations
- Archive internal file rename operations now use
Path.GetFileName()to prevent path traversal issues. - File move operations now correctly handle destination file overwrites.
File Enumeration
- File scanning now uses
EnumerationOptionsto skip hidden, system, and reparse point files for better performance and reliability.
Bug Fixes
- Fixed critical data loss bug where source files could be permanently deleted during archive rename operations when a filename collision occurred.
- Fixed font crash — added fallback fonts (
Courier New,Lucida Console) whenConsolasis unavailable, preventingSEHExceptioncrash on systems with missing fonts.
Dependency Updates
| Package | Old Version | New Version |
|---|---|---|
| SharpSevenZip | 2.0.36 | 2.0.49 |
| Microsoft.NET.Test.Sdk | 18.4.0 | 18.6.0 |
| coverlet.collector | 10.0.0 | 10.0.1 |
Full Changelog: release_2.6.1...release_2.7.0