版本发布 8
## What's Changed * Proper test file clean up by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1245 * Fix ZIP64 stream bounding and WinZip AES read-state corruption in ZIP reader by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1253 **Full Changelog**: https://github.com/adamhathcock/sharpcompress/compare/0.47.0...0.47.1
I think this is the last breaking change before I mark things as 1.0. Looking for feedback ## What's Changed * Fix CompressionType for WinZip AES encrypted ZIP entries by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1213 * Add ability to have alternate compressions by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1197 * Expose SharpCompressStream to allow ringbuffer to be used on non-seekable streams by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1220 * Tightening build errors by warnings as errors and making more build time issues by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1214 * Use more SharpCompress exceptions instead of generic ones by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1224 * Added Net7.0 / Net 6.0 / Net 5.0 and NetStandard2.1 by @Nanook in https://github.com/adamhathcock/sharpcompress/pull/1227 * Writers should have async API by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1211 * Add 7z archive writer with LZMA/LZMA2 compression by @DanNsk in https://github.com/adamhathcock/sharpcompress/pull/1229 * Add async 7z writing by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1235 * Bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in https://github.com/adamhathcock/sharpcompress/pull/1240 * Moving extraction options back by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1239 * Fix DataErrorException when extracting LZMA-compressed zero-byte ZIP entries by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1237 * Update test dependencies by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1242 ## New Contributors * @DanNsk made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/1229 **Full Changelog**: https://github.com/adamhathcock/sharpcompress/compare/0.46.4...0.47.0
## What's Changed * Fix NullReferenceException when extracting 7z empty-stream entries by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1219 **Full Changelog**: https://github.com/adamhathcock/sharpcompress/compare/0.46.0...0.46.1
This release should be fully async as well as sync depending on the API used. I've endeavoured to make sure no sync methods are used when going via the async interface (and vice versa) but you never know. Tests should cover things as well as the recent fixes (like the 7z regression) Options and the API have been revamped so expect API breakages. I think it should be straight-forward but things won't compile. There is a thing about Dispose vs async Disposing that may or may not be fully covered 😬 Feedback is welcome as I think 1.0 is around the corner with the introduction of Providers and other things. I wanted to get the async revamp out generally first though. ## What's Changed * Consolidate stream extension methods and simplify with framework methods by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1100 * Change ArchiveEncoding to interface. by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1117 * Readd netstandard 2.0 by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1122 * Add more documentation by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1123 * Fix async test method naming inconsistency in ZipArchiveAsyncTests by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1124 * [WIP] Update ZipReader and ZipWriter based on review feedback by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1125 * Fix typo in TestBase.cs comment by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1126 * Fix async test method naming in ZipArchiveAsyncTests by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1127 * More async for ZipReader and ZipWriter by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1121 * Add ArcReaderAsync tests by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1036 * Change interfaces to be consistent for new Async paths (definitely breaks things) by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1128 * More test fixes and some perf changes by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1131 * Consolidate NETFRAMEWORK/NETSTANDARD compile flags into LEGACY_DOTNET by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1135 * Add async I/O support for SevenZip archive initialization by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1133 * Remove redundant stream field in AsyncOnlyStream by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1138 * Replace empty catch blocks with explicit exception handling in TarArchive validation methods by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1140 * Fix async test failures after xunit v3 upgrade by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1137 * Upgrade xunit to v3 by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1136 * Fix ReadFullyAsync with ArrayPool buffer in SevenZipArchive signature check by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1142 * [WIP] Address feedback on async creation cleanup changes by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1141 * Add leaveOpen parameter to LZipStream and BZip2Stream by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1145 * Fix EntryStream.Dispose() throwing NotSupportedException on non-seekable streams by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1151 * Fix dispose methods to always set _isDisposed and call base.Dispose() when LeaveOpen is true by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1152 * Fix silent iteration failure when input stream throws on Flush() by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1156 * release to master by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1162 * Clean up for async creation by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1132 * Fix infinite loop in SourceStream.Seek for malformed archives by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1178 * [WIP] WIP address feedback on AOT props and cleanup by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1182 * Add AOT to props and clean up in release by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1181 * merge release to master by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1174 * release to master merge by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1183 * Some clean up post-async merging by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1184 * Clean up again by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1187 * Add automated performance benchmarks with BenchmarkDotNet by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1188 * Bump csharpier from 1.2.5 to 1.2.6 by @dependabot[bot] in https://github.com/adamhathcock/sharpcompress/pull/1192 * Change and clean up options by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1193 * Fix archive extraction to preserve directory structure when options is null by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1191 * Add LzwReader support for .Z compressed archives by @Copilot in https://github.com/adamhathcock/sharpcompress/pull/1189 * add configure await by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/1195 **Full Changelog**: https://github.com/adamhathcock/sharpcompress/compare/0.44.5...0.45.0
## What's Changed * don't run net48 on non-windows by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/892 * Fix zip entry handling for entries with data descriptors by @Morilli in https://github.com/adamhathcock/sharpcompress/pull/891 * Fix for Rar4 v20 compression. by @Nanook in https://github.com/adamhathcock/sharpcompress/pull/893 * use File.OpenRead instead of File.Open in tests to allow concurrent access by @Morilli in https://github.com/adamhathcock/sharpcompress/pull/895 * Fix condition in rar v3 code by @Morilli in https://github.com/adamhathcock/sharpcompress/pull/894 * Rar2 v20,v26 Multimedia (Audio) decoder fix by @Nanook in https://github.com/adamhathcock/sharpcompress/pull/896 * Implement ReadByte for LzmaStream and LzOutWindow by @Morilli in https://github.com/adamhathcock/sharpcompress/pull/898 * Implement ReadByte for BufferedSubStream by @Morilli in https://github.com/adamhathcock/sharpcompress/pull/897 * make WriteToDirectory functions use ExtractAllEntries by @Morilli in https://github.com/adamhathcock/sharpcompress/pull/900 * Handle XZ CheckType SHA-256 by @ms264556 in https://github.com/adamhathcock/sharpcompress/pull/901 * Provide access to extended attributes for 7-zip by @jdpurcell in https://github.com/adamhathcock/sharpcompress/pull/904 * Base Reader implementation of .ARC format by @TwanVanDongen in https://github.com/adamhathcock/sharpcompress/pull/903 * ARC decompression methods 3 and 4 added by @TwanVanDongen in https://github.com/adamhathcock/sharpcompress/pull/905 * Added ARC's crunched methods 5, 6, 7 & 8 by @TwanVanDongen in https://github.com/adamhathcock/sharpcompress/pull/906 * Optimize LZ OutWindow.CopyBlock by @jdpurcell in https://github.com/adamhathcock/sharpcompress/pull/907 * Optimize LZMA range decoder by @jdpurcell in https://github.com/adamhathcock/sharpcompress/pull/910 * Update USAGE.md to remove problematic extraction example by @Morilli in https://github.com/adamhathcock/sharpcompress/pull/909 * Optimize BufferedSubStream.ReadByte by @jdpurcell in https://github.com/adamhathcock/sharpcompress/pull/912 * Fix regression with BufferedSubStream calculation by @jdpurcell in https://github.com/adamhathcock/sharpcompress/pull/913 * Add SharpCompressException and use it or children in most places by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/834 * return Stream.Null when 7z entry has no stream by @zgabi in https://github.com/adamhathcock/sharpcompress/pull/854 * Implement multipart rar handling for ExtractAllEntries by @Morilli in https://github.com/adamhathcock/sharpcompress/pull/916 * [bzip2] fix possible out of bounds access due to unsanitized nSelectors usage by @Morilli in https://github.com/adamhathcock/sharpcompress/pull/918 * Update dependencies and csharpier by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/914 ## New Contributors * @ms264556 made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/901 * @jdpurcell made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/904 * @zgabi made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/854 **Full Changelog**: https://github.com/adamhathcock/sharpcompress/compare/0.39.0...0.40.0
## What's Changed * Restore stream position in ArchiveFactory.IsArchive by @Morilli in https://github.com/adamhathcock/sharpcompress/pull/876 * Fixed bug in zip time header flags by @StarkDirewolf in https://github.com/adamhathcock/sharpcompress/pull/877 * Exports unclutter by @YoshiRulz in https://github.com/adamhathcock/sharpcompress/pull/884 * Fix XZBlock padding calculation when its stream's starting position % 4 != 0 by @Morilli in https://github.com/adamhathcock/sharpcompress/pull/878 * Improve rar memory usage by @majorro in https://github.com/adamhathcock/sharpcompress/pull/887 * Make helper classes internal by @majorro in https://github.com/adamhathcock/sharpcompress/pull/889 * Update to support net48, net481, netstandard2.0, net6 and net8 by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/888 ## New Contributors * @StarkDirewolf made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/877 * @YoshiRulz made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/884 * @majorro made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/887 **Full Changelog**: https://github.com/adamhathcock/sharpcompress/compare/0.38.0...0.39.0
## What's Changed * Tar: Add processing for the LongLink header type by @DannyBoyk in https://github.com/adamhathcock/sharpcompress/pull/847 * Fix gzip archives having a `Type` of `ArchiveType.Tar` instead of `ArchiveType.Gzip` by @Morilli in https://github.com/adamhathcock/sharpcompress/pull/848 * Fix for issue #844 by @Erior in https://github.com/adamhathcock/sharpcompress/pull/849 * Issue 842 by @Erior in https://github.com/adamhathcock/sharpcompress/pull/850 * Fixed extractions after first ZIP64 entry is read from stream by @pathartl in https://github.com/adamhathcock/sharpcompress/pull/852 * Check crc on tar header by @Erior in https://github.com/adamhathcock/sharpcompress/pull/855 * Fix for missing empty directories when using ExtractToDirectory by @alexprabhat99 in https://github.com/adamhathcock/sharpcompress/pull/857 * Added Explode and (un)Reduce by @gjefferyes in https://github.com/adamhathcock/sharpcompress/pull/853 * Fix #858 - Replaces invalid filename characters by @DineshSolanki in https://github.com/adamhathcock/sharpcompress/pull/859 * Added support for 7zip SFX archives by @lostmsu in https://github.com/adamhathcock/sharpcompress/pull/860 * Update csproj to get green marks and update deps by @adamhathcock in https://github.com/adamhathcock/sharpcompress/pull/864 * Added shrink, reduce and implode to FORMATS by @TwanVanDongen in https://github.com/adamhathcock/sharpcompress/pull/866 * Fix small typo in USAGE.md by @kikaragyozov in https://github.com/adamhathcock/sharpcompress/pull/868 ## New Contributors * @Morilli made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/848 * @alexprabhat99 made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/857 * @gjefferyes made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/853 * @DineshSolanki made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/859 * @lostmsu made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/860 * @kikaragyozov made their first contribution in https://github.com/adamhathcock/sharpcompress/pull/868 **Full Changelog**: https://github.com/adamhathcock/sharpcompress/compare/0.37.2...0.38.0
**Full Changelog**: https://github.com/adamhathcock/sharpcompress/compare/0.37.1...0.37.2