diff --git a/ICSharpCode.SharpZipLib.NET45/ICSharpCode.SharpZipLib.csproj b/ICSharpCode.SharpZipLib.NET45/ICSharpCode.SharpZipLib.csproj new file mode 100644 index 000000000..cb0691ba5 --- /dev/null +++ b/ICSharpCode.SharpZipLib.NET45/ICSharpCode.SharpZipLib.csproj @@ -0,0 +1,288 @@ + + + + + Release + AnyCPU + 2.0 + {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD} + ICSharpCode.SharpZipLib + ICSharpCode.SharpZipLib + Library + + 4 + + false + false + OnBuildSuccess + + + ..\bin\ICSharpCode.SharpZipLib.xml + v4.5 + + + + + + + false + true + false + false + ..\bin\Release\ + false + pdbonly + false + ..\bin\Release\ICSharpCode.SharpZipLib.xml + true + MinimumRecommendedRules.ruleset + TRACE;NET45;CODE_ANALYSIS;CODE_ANALYSIS + 0 + prompt + + + true + false + false + false + ..\bin\Debug\ + false + Full + false + ..\bin\Debug\ICSharpCode.SharpZipLib.xml + TRACE;DEBUG;NET45;CODE_ANALYSIS;CODE_ANALYSIS + true + AllRules.ruleset + prompt + + + false + Auto + 4194304 + AnyCPU + 4096 + + + true + + + ..\ICSharpCode.SharpZipLib.snk + + + + + + + + GlobalAssemblyInfo.cs + + + Properties\AssemblyInfo.cs + + + SharpZipBaseException.cs + + + BZip2\BZip2.cs + + + BZip2\BZip2Constants.cs + + + BZip2\BZip2Exception.cs + + + BZip2\BZip2InputStream.cs + + + BZip2\BZip2OutputStream.cs + + + Checksum\Adler32.cs + + + Checksum\BZip2Crc.cs + + + Checksum\Crc32.cs + + + Checksum\IChecksum.cs + + + Core\FileSystemScanner.cs + + + Core\INameTransform.cs + + + Core\IScanFilter.cs + + + Core\NameFilter.cs + + + Core\PathFilter.cs + + + Core\StreamUtils.cs + + + Core\WindowsPathUtils.cs + + + Encryption\PkzipClassic.cs + + + Encryption\ZipAESStream.cs + + + Encryption\ZipAESTransform.cs + + + GZip\GZip.cs + + + GZip\GZipConstants.cs + + + GZip\GZipException.cs + + + GZip\GzipInputStream.cs + + + GZip\GzipOutputStream.cs + + + Lzw\LzwConstants.cs + + + Lzw\LzwException.cs + + + Lzw\LzwInputStream.cs + + + Tar\InvalidHeaderException.cs + + + Tar\TarArchive.cs + + + Tar\TarBuffer.cs + + + Tar\TarEntry.cs + + + Tar\TarException.cs + + + Tar\TarHeader.cs + + + Tar\TarInputStream.cs + + + Tar\TarOutputStream.cs + + + Zip\FastZip.cs + + + Zip\IEntryFactory.cs + + + Zip\WindowsNameTransform.cs + + + Zip\ZipConstants.cs + + + Zip\ZipEntry.cs + + + Zip\ZipEntryFactory.cs + + + Zip\ZipException.cs + + + Zip\ZipExtraData.cs + + + Zip\ZipFile.cs + + + Zip\ZipHelperStream.cs + + + Zip\ZipInputStream.cs + + + Zip\ZipNameTransform.cs + + + Zip\ZipOutputStream.cs + + + Zip\Compression\Deflater.cs + + + Zip\Compression\DeflaterConstants.cs + + + Zip\Compression\DeflaterEngine.cs + + + Zip\Compression\DeflaterHuffman.cs + + + Zip\Compression\DeflaterPending.cs + + + Zip\Compression\Inflater.cs + + + Zip\Compression\InflaterDynHeader.cs + + + Zip\Compression\InflaterHuffmanTree.cs + + + Zip\Compression\PendingBuffer.cs + + + Zip\Compression\Streams\DeflaterOutputStream.cs + + + Zip\Compression\Streams\InflaterInputStream.cs + + + Zip\Compression\Streams\OutputWindow.cs + + + Zip\Compression\Streams\StreamManipulator.cs + + + + + SharpZipLibCodeMap.dgml + + + ICSharpCode.SharpZipLib.snk + + + + + + + + diff --git a/ICSharpCode.SharpZipLib.NETStandard/ICSharpCode.SharpZipLib.NetStandard.csproj b/ICSharpCode.SharpZipLib.NETStandard/ICSharpCode.SharpZipLib.NetStandard.csproj new file mode 100644 index 000000000..e0f66359e --- /dev/null +++ b/ICSharpCode.SharpZipLib.NETStandard/ICSharpCode.SharpZipLib.NetStandard.csproj @@ -0,0 +1,244 @@ + + + + + 14.0 + Debug + AnyCPU + {BF51C1EA-5CED-4A08-A57D-FDF2E425DB70} + Library + Properties + ICSharpCode.SharpZipLib + ICSharpCode.SharpZipLib + en-US + 512 + {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + + + v5.0 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + GlobalAssemblyInfo.cs + + + Properties\AssemblyInfo.cs + + + SharpZipBaseException.cs + + + BZip2\BZip2.cs + + + BZip2\BZip2Constants.cs + + + BZip2\BZip2Exception.cs + + + BZip2\BZip2InputStream.cs + + + BZip2\BZip2OutputStream.cs + + + Checksum\Adler32.cs + + + Checksum\BZip2Crc.cs + + + Checksum\Crc32.cs + + + Checksum\IChecksum.cs + + + Core\FileSystemScanner.cs + + + Core\INameTransform.cs + + + Core\IScanFilter.cs + + + Core\NameFilter.cs + + + Core\PathFilter.cs + + + Core\StreamUtils.cs + + + Core\WindowsPathUtils.cs + + + Encryption\PkzipClassic.cs + + + Encryption\ZipAESStream.cs + + + Encryption\ZipAESTransform.cs + + + GZip\GZip.cs + + + GZip\GZipConstants.cs + + + GZip\GZipException.cs + + + GZip\GzipInputStream.cs + + + GZip\GzipOutputStream.cs + + + Lzw\LzwConstants.cs + + + Lzw\LzwException.cs + + + Lzw\LzwInputStream.cs + + + Tar\InvalidHeaderException.cs + + + Tar\TarArchive.cs + + + Tar\TarBuffer.cs + + + Tar\TarEntry.cs + + + Tar\TarException.cs + + + Tar\TarHeader.cs + + + Tar\TarInputStream.cs + + + Tar\TarOutputStream.cs + + + Zip\FastZip.cs + + + Zip\IEntryFactory.cs + + + Zip\WindowsNameTransform.cs + + + Zip\ZipConstants.cs + + + Zip\ZipEntry.cs + + + Zip\ZipEntryFactory.cs + + + Zip\ZipException.cs + + + Zip\ZipExtraData.cs + + + Zip\ZipFile.cs + + + Zip\ZipHelperStream.cs + + + Zip\ZipInputStream.cs + + + Zip\ZipNameTransform.cs + + + Zip\ZipOutputStream.cs + + + Zip\Compression\Deflater.cs + + + Zip\Compression\DeflaterConstants.cs + + + Zip\Compression\DeflaterEngine.cs + + + Zip\Compression\DeflaterHuffman.cs + + + Zip\Compression\DeflaterPending.cs + + + Zip\Compression\Inflater.cs + + + Zip\Compression\InflaterDynHeader.cs + + + Zip\Compression\InflaterHuffmanTree.cs + + + Zip\Compression\PendingBuffer.cs + + + Zip\Compression\Streams\DeflaterOutputStream.cs + + + Zip\Compression\Streams\InflaterInputStream.cs + + + Zip\Compression\Streams\OutputWindow.cs + + + Zip\Compression\Streams\StreamManipulator.cs + + + + + + \ No newline at end of file diff --git a/ICSharpCode.SharpZipLib.NETStandard/project.json b/ICSharpCode.SharpZipLib.NETStandard/project.json new file mode 100644 index 000000000..a4437d3c2 --- /dev/null +++ b/ICSharpCode.SharpZipLib.NETStandard/project.json @@ -0,0 +1,10 @@ +{ + "supports": {}, + "dependencies": { + "Microsoft.NETCore.Portable.Compatibility": "1.0.2", + "NETStandard.Library": "1.6.0" + }, + "frameworks": { + "netstandard1.3": {} + } +} diff --git a/ICSharpCode.SharpZipLib/AssemblyInfo.cs b/ICSharpCode.SharpZipLib.Shared/AssemblyInfo.cs similarity index 100% rename from ICSharpCode.SharpZipLib/AssemblyInfo.cs rename to ICSharpCode.SharpZipLib.Shared/AssemblyInfo.cs diff --git a/ICSharpCode.SharpZipLib/BZip2/BZip2.cs b/ICSharpCode.SharpZipLib.Shared/BZip2/BZip2.cs similarity index 100% rename from ICSharpCode.SharpZipLib/BZip2/BZip2.cs rename to ICSharpCode.SharpZipLib.Shared/BZip2/BZip2.cs diff --git a/ICSharpCode.SharpZipLib/BZip2/BZip2Constants.cs b/ICSharpCode.SharpZipLib.Shared/BZip2/BZip2Constants.cs similarity index 100% rename from ICSharpCode.SharpZipLib/BZip2/BZip2Constants.cs rename to ICSharpCode.SharpZipLib.Shared/BZip2/BZip2Constants.cs diff --git a/ICSharpCode.SharpZipLib/BZip2/BZip2Exception.cs b/ICSharpCode.SharpZipLib.Shared/BZip2/BZip2Exception.cs similarity index 100% rename from ICSharpCode.SharpZipLib/BZip2/BZip2Exception.cs rename to ICSharpCode.SharpZipLib.Shared/BZip2/BZip2Exception.cs diff --git a/ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs b/ICSharpCode.SharpZipLib.Shared/BZip2/BZip2InputStream.cs similarity index 100% rename from ICSharpCode.SharpZipLib/BZip2/BZip2InputStream.cs rename to ICSharpCode.SharpZipLib.Shared/BZip2/BZip2InputStream.cs diff --git a/ICSharpCode.SharpZipLib/BZip2/BZip2OutputStream.cs b/ICSharpCode.SharpZipLib.Shared/BZip2/BZip2OutputStream.cs similarity index 100% rename from ICSharpCode.SharpZipLib/BZip2/BZip2OutputStream.cs rename to ICSharpCode.SharpZipLib.Shared/BZip2/BZip2OutputStream.cs diff --git a/ICSharpCode.SharpZipLib/Checksum/Adler32.cs b/ICSharpCode.SharpZipLib.Shared/Checksum/Adler32.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Checksum/Adler32.cs rename to ICSharpCode.SharpZipLib.Shared/Checksum/Adler32.cs diff --git a/ICSharpCode.SharpZipLib/Checksum/BZip2Crc.cs b/ICSharpCode.SharpZipLib.Shared/Checksum/BZip2Crc.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Checksum/BZip2Crc.cs rename to ICSharpCode.SharpZipLib.Shared/Checksum/BZip2Crc.cs diff --git a/ICSharpCode.SharpZipLib/Checksum/Crc32.cs b/ICSharpCode.SharpZipLib.Shared/Checksum/Crc32.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Checksum/Crc32.cs rename to ICSharpCode.SharpZipLib.Shared/Checksum/Crc32.cs diff --git a/ICSharpCode.SharpZipLib/Checksum/IChecksum.cs b/ICSharpCode.SharpZipLib.Shared/Checksum/IChecksum.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Checksum/IChecksum.cs rename to ICSharpCode.SharpZipLib.Shared/Checksum/IChecksum.cs diff --git a/ICSharpCode.SharpZipLib/Core/FileSystemScanner.cs b/ICSharpCode.SharpZipLib.Shared/Core/FileSystemScanner.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Core/FileSystemScanner.cs rename to ICSharpCode.SharpZipLib.Shared/Core/FileSystemScanner.cs diff --git a/ICSharpCode.SharpZipLib/Core/INameTransform.cs b/ICSharpCode.SharpZipLib.Shared/Core/INameTransform.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Core/INameTransform.cs rename to ICSharpCode.SharpZipLib.Shared/Core/INameTransform.cs diff --git a/ICSharpCode.SharpZipLib/Core/IScanFilter.cs b/ICSharpCode.SharpZipLib.Shared/Core/IScanFilter.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Core/IScanFilter.cs rename to ICSharpCode.SharpZipLib.Shared/Core/IScanFilter.cs diff --git a/ICSharpCode.SharpZipLib/Core/NameFilter.cs b/ICSharpCode.SharpZipLib.Shared/Core/NameFilter.cs similarity index 96% rename from ICSharpCode.SharpZipLib/Core/NameFilter.cs rename to ICSharpCode.SharpZipLib.Shared/Core/NameFilter.cs index 217e12ba7..a2af22257 100644 --- a/ICSharpCode.SharpZipLib/Core/NameFilter.cs +++ b/ICSharpCode.SharpZipLib.Shared/Core/NameFilter.cs @@ -1,5 +1,6 @@ using System; using System.Collections; +using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; @@ -29,8 +30,8 @@ public class NameFilter : IScanFilter public NameFilter(string filter) { filter_ = filter; - inclusions_ = new ArrayList(); - exclusions_ = new ArrayList(); + inclusions_ = new List(); + exclusions_ = new List(); Compile(); } #endregion @@ -96,7 +97,7 @@ public static string[] SplitQuoted(string original) char escape = '\\'; char[] separators = { ';' }; - var result = new ArrayList(); + var result = new List(); if (!string.IsNullOrEmpty(original)) { int endIndex = -1; @@ -127,7 +128,7 @@ public static string[] SplitQuoted(string original) } } - return (string[])result.ToArray(typeof(string)); + return result.ToArray(); } /// @@ -228,8 +229,8 @@ void Compile() #region Instance Fields string filter_; - ArrayList inclusions_; - ArrayList exclusions_; + List inclusions_; + List exclusions_; #endregion } } diff --git a/ICSharpCode.SharpZipLib/Core/PathFilter.cs b/ICSharpCode.SharpZipLib.Shared/Core/PathFilter.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Core/PathFilter.cs rename to ICSharpCode.SharpZipLib.Shared/Core/PathFilter.cs diff --git a/ICSharpCode.SharpZipLib/Core/StreamUtils.cs b/ICSharpCode.SharpZipLib.Shared/Core/StreamUtils.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Core/StreamUtils.cs rename to ICSharpCode.SharpZipLib.Shared/Core/StreamUtils.cs diff --git a/ICSharpCode.SharpZipLib/Core/WindowsPathUtils.cs b/ICSharpCode.SharpZipLib.Shared/Core/WindowsPathUtils.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Core/WindowsPathUtils.cs rename to ICSharpCode.SharpZipLib.Shared/Core/WindowsPathUtils.cs diff --git a/ICSharpCode.SharpZipLib/Encryption/PkzipClassic.cs b/ICSharpCode.SharpZipLib.Shared/Encryption/PkzipClassic.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Encryption/PkzipClassic.cs rename to ICSharpCode.SharpZipLib.Shared/Encryption/PkzipClassic.cs diff --git a/ICSharpCode.SharpZipLib/Encryption/ZipAESStream.cs b/ICSharpCode.SharpZipLib.Shared/Encryption/ZipAESStream.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Encryption/ZipAESStream.cs rename to ICSharpCode.SharpZipLib.Shared/Encryption/ZipAESStream.cs diff --git a/ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs b/ICSharpCode.SharpZipLib.Shared/Encryption/ZipAESTransform.cs similarity index 86% rename from ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs rename to ICSharpCode.SharpZipLib.Shared/Encryption/ZipAESTransform.cs index 1ef1f93c3..22bc14d4a 100644 --- a/ICSharpCode.SharpZipLib/Encryption/ZipAESTransform.cs +++ b/ICSharpCode.SharpZipLib.Shared/Encryption/ZipAESTransform.cs @@ -8,6 +8,32 @@ namespace ICSharpCode.SharpZipLib.Encryption /// internal class ZipAESTransform : ICryptoTransform { + +#if NET45 + class IncrementalHash : HMACSHA1 + { + bool _finalised; + public IncrementalHash(byte[] key) : base(key) { } + public static IncrementalHash CreateHMAC(string n, byte[] key) => new IncrementalHash(key); + public void AppendData(byte[] buffer, int offset, int count) => TransformBlock(buffer, offset, count, buffer, offset); + public byte[] GetHashAndReset() + { + if (!_finalised) + { + byte[] dummy = new byte[0]; + TransformFinalBlock(dummy, 0, 0); + _finalised = true; + } + return Hash; + } + } + + static class HashAlgorithmName + { + public static string SHA1 = null; + } +#endif + private const int PWD_VER_LENGTH = 2; // WinZip use iteration count of 1000 for PBKDF2 key generation @@ -25,7 +51,7 @@ internal class ZipAESTransform : ICryptoTransform private int _encrPos; private byte[] _pwdVerifier; private IncrementalHash _hmacsha1; - private bool _finalised; + private byte[] _authCode = null; private bool _writeMode; @@ -113,10 +139,14 @@ public byte[] PwdVerifier { /// public byte[] GetAuthCode() { - return _hmacsha1.GetHashAndReset(); + if (_authCode == null) + { + _authCode = _hmacsha1.GetHashAndReset(); + } + return _authCode; } - #region ICryptoTransform Members +#region ICryptoTransform Members /// /// Not implemented. @@ -171,7 +201,7 @@ public void Dispose() _encryptor.Dispose(); } - #endregion +#endregion } } diff --git a/ICSharpCode.SharpZipLib/GZip/GZip.cs b/ICSharpCode.SharpZipLib.Shared/GZip/GZip.cs similarity index 100% rename from ICSharpCode.SharpZipLib/GZip/GZip.cs rename to ICSharpCode.SharpZipLib.Shared/GZip/GZip.cs diff --git a/ICSharpCode.SharpZipLib/GZip/GZipConstants.cs b/ICSharpCode.SharpZipLib.Shared/GZip/GZipConstants.cs similarity index 100% rename from ICSharpCode.SharpZipLib/GZip/GZipConstants.cs rename to ICSharpCode.SharpZipLib.Shared/GZip/GZipConstants.cs diff --git a/ICSharpCode.SharpZipLib/GZip/GZipException.cs b/ICSharpCode.SharpZipLib.Shared/GZip/GZipException.cs similarity index 100% rename from ICSharpCode.SharpZipLib/GZip/GZipException.cs rename to ICSharpCode.SharpZipLib.Shared/GZip/GZipException.cs diff --git a/ICSharpCode.SharpZipLib/GZip/GzipInputStream.cs b/ICSharpCode.SharpZipLib.Shared/GZip/GzipInputStream.cs similarity index 100% rename from ICSharpCode.SharpZipLib/GZip/GzipInputStream.cs rename to ICSharpCode.SharpZipLib.Shared/GZip/GzipInputStream.cs diff --git a/ICSharpCode.SharpZipLib/GZip/GzipOutputStream.cs b/ICSharpCode.SharpZipLib.Shared/GZip/GzipOutputStream.cs similarity index 100% rename from ICSharpCode.SharpZipLib/GZip/GzipOutputStream.cs rename to ICSharpCode.SharpZipLib.Shared/GZip/GzipOutputStream.cs diff --git a/ICSharpCode.SharpZipLib/Lzw/LzwConstants.cs b/ICSharpCode.SharpZipLib.Shared/Lzw/LzwConstants.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Lzw/LzwConstants.cs rename to ICSharpCode.SharpZipLib.Shared/Lzw/LzwConstants.cs diff --git a/ICSharpCode.SharpZipLib/Lzw/LzwException.cs b/ICSharpCode.SharpZipLib.Shared/Lzw/LzwException.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Lzw/LzwException.cs rename to ICSharpCode.SharpZipLib.Shared/Lzw/LzwException.cs diff --git a/ICSharpCode.SharpZipLib/Lzw/LzwInputStream.cs b/ICSharpCode.SharpZipLib.Shared/Lzw/LzwInputStream.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Lzw/LzwInputStream.cs rename to ICSharpCode.SharpZipLib.Shared/Lzw/LzwInputStream.cs diff --git a/ICSharpCode.SharpZipLib/SharpZipBaseException.cs b/ICSharpCode.SharpZipLib.Shared/SharpZipBaseException.cs similarity index 100% rename from ICSharpCode.SharpZipLib/SharpZipBaseException.cs rename to ICSharpCode.SharpZipLib.Shared/SharpZipBaseException.cs diff --git a/ICSharpCode.SharpZipLib/Tar/InvalidHeaderException.cs b/ICSharpCode.SharpZipLib.Shared/Tar/InvalidHeaderException.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Tar/InvalidHeaderException.cs rename to ICSharpCode.SharpZipLib.Shared/Tar/InvalidHeaderException.cs diff --git a/ICSharpCode.SharpZipLib/Tar/TarArchive.cs b/ICSharpCode.SharpZipLib.Shared/Tar/TarArchive.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Tar/TarArchive.cs rename to ICSharpCode.SharpZipLib.Shared/Tar/TarArchive.cs diff --git a/ICSharpCode.SharpZipLib/Tar/TarBuffer.cs b/ICSharpCode.SharpZipLib.Shared/Tar/TarBuffer.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Tar/TarBuffer.cs rename to ICSharpCode.SharpZipLib.Shared/Tar/TarBuffer.cs diff --git a/ICSharpCode.SharpZipLib/Tar/TarEntry.cs b/ICSharpCode.SharpZipLib.Shared/Tar/TarEntry.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Tar/TarEntry.cs rename to ICSharpCode.SharpZipLib.Shared/Tar/TarEntry.cs diff --git a/ICSharpCode.SharpZipLib/Tar/TarException.cs b/ICSharpCode.SharpZipLib.Shared/Tar/TarException.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Tar/TarException.cs rename to ICSharpCode.SharpZipLib.Shared/Tar/TarException.cs diff --git a/ICSharpCode.SharpZipLib/Tar/TarHeader.cs b/ICSharpCode.SharpZipLib.Shared/Tar/TarHeader.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Tar/TarHeader.cs rename to ICSharpCode.SharpZipLib.Shared/Tar/TarHeader.cs diff --git a/ICSharpCode.SharpZipLib/Tar/TarInputStream.cs b/ICSharpCode.SharpZipLib.Shared/Tar/TarInputStream.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Tar/TarInputStream.cs rename to ICSharpCode.SharpZipLib.Shared/Tar/TarInputStream.cs diff --git a/ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs b/ICSharpCode.SharpZipLib.Shared/Tar/TarOutputStream.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Tar/TarOutputStream.cs rename to ICSharpCode.SharpZipLib.Shared/Tar/TarOutputStream.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/Deflater.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/Deflater.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/Deflater.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/Deflater.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterConstants.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/DeflaterConstants.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/DeflaterConstants.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/DeflaterConstants.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterEngine.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/DeflaterEngine.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/DeflaterEngine.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/DeflaterEngine.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterHuffman.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/DeflaterHuffman.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/DeflaterHuffman.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/DeflaterHuffman.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/DeflaterPending.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/DeflaterPending.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/DeflaterPending.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/DeflaterPending.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/Inflater.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/Inflater.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/Inflater.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/Inflater.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/InflaterDynHeader.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/InflaterDynHeader.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/InflaterDynHeader.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/InflaterDynHeader.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/InflaterHuffmanTree.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/InflaterHuffmanTree.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/InflaterHuffmanTree.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/InflaterHuffmanTree.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/PendingBuffer.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/PendingBuffer.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/PendingBuffer.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/PendingBuffer.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/Streams/DeflaterOutputStream.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/Streams/DeflaterOutputStream.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/Streams/DeflaterOutputStream.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/Streams/DeflaterOutputStream.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/Streams/InflaterInputStream.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/Streams/InflaterInputStream.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/Streams/InflaterInputStream.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/Streams/InflaterInputStream.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/Streams/OutputWindow.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/Streams/OutputWindow.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/Streams/OutputWindow.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/Streams/OutputWindow.cs diff --git a/ICSharpCode.SharpZipLib/Zip/Compression/Streams/StreamManipulator.cs b/ICSharpCode.SharpZipLib.Shared/Zip/Compression/Streams/StreamManipulator.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/Compression/Streams/StreamManipulator.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/Compression/Streams/StreamManipulator.cs diff --git a/ICSharpCode.SharpZipLib/Zip/FastZip.cs b/ICSharpCode.SharpZipLib.Shared/Zip/FastZip.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/FastZip.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/FastZip.cs diff --git a/ICSharpCode.SharpZipLib/Zip/IEntryFactory.cs b/ICSharpCode.SharpZipLib.Shared/Zip/IEntryFactory.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/IEntryFactory.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/IEntryFactory.cs diff --git a/ICSharpCode.SharpZipLib/Zip/WindowsNameTransform.cs b/ICSharpCode.SharpZipLib.Shared/Zip/WindowsNameTransform.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/WindowsNameTransform.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/WindowsNameTransform.cs diff --git a/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs b/ICSharpCode.SharpZipLib.Shared/Zip/ZipConstants.cs similarity index 94% rename from ICSharpCode.SharpZipLib/Zip/ZipConstants.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/ZipConstants.cs index 558770acc..988e4eb10 100644 --- a/ICSharpCode.SharpZipLib/Zip/ZipConstants.cs +++ b/ICSharpCode.SharpZipLib.Shared/Zip/ZipConstants.cs @@ -422,35 +422,21 @@ public sealed class ZipConstants #endregion /// - /// Get OEM codepage from NetFX, which parses the NLP file with culture info table etc etc. - /// But sometimes it yields the special value of 1 which is nicknamed CodePageNoOEM in sources (might also mean CP_OEMCP, but Encoding puts it so). - /// This was observed on Ukranian and Hindu systems. - /// Given this value, throws an . - /// So replace it with some fallback, e.g. 437 which is the default cpcp in a console in a default Windows installation. + /// The original Zip specification (https://pkware.cachefly.net/webdocs/casestudies/APPNOTE.TXT) states + /// that file names should only be encoded with IBM Code Page 437 or UTF-8. + /// In practice, most zip apps use OEM or system encoding (typically cp437 on Windows). + /// Let's be good citizens and default to UTF-8 http://utf8everywhere.org/ /// - static int defaultCodePage = -1; + static int defaultCodePage = Encoding.UTF8.CodePage; /// /// Default encoding used for string conversion. 0 gives the default system OEM code page. - /// Dont use unicode encodings if you want to be Zip compatible! /// Using the default code page isnt the full solution neccessarily /// there are many variable factors, codepage 850 is often a good choice for /// European users, however be careful about compatability. /// public static int DefaultCodePage { get { - const int FALLBACK_CODE_PAGE = 437; - if (defaultCodePage == -1) - { - try - { - var codePage = Encoding.GetEncoding(0).CodePage; - defaultCodePage = (codePage == 1 || codePage == 2 || codePage == 3 || codePage == 42) ? FALLBACK_CODE_PAGE : codePage; - } - catch { - defaultCodePage = FALLBACK_CODE_PAGE; - } - } return defaultCodePage; } set { diff --git a/ICSharpCode.SharpZipLib/Zip/ZipEntry.cs b/ICSharpCode.SharpZipLib.Shared/Zip/ZipEntry.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/ZipEntry.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/ZipEntry.cs diff --git a/ICSharpCode.SharpZipLib/Zip/ZipEntryFactory.cs b/ICSharpCode.SharpZipLib.Shared/Zip/ZipEntryFactory.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/ZipEntryFactory.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/ZipEntryFactory.cs diff --git a/ICSharpCode.SharpZipLib/Zip/ZipException.cs b/ICSharpCode.SharpZipLib.Shared/Zip/ZipException.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/ZipException.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/ZipException.cs diff --git a/ICSharpCode.SharpZipLib/Zip/ZipExtraData.cs b/ICSharpCode.SharpZipLib.Shared/Zip/ZipExtraData.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/ZipExtraData.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/ZipExtraData.cs diff --git a/ICSharpCode.SharpZipLib/Zip/ZipFile.cs b/ICSharpCode.SharpZipLib.Shared/Zip/ZipFile.cs similarity index 99% rename from ICSharpCode.SharpZipLib/Zip/ZipFile.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/ZipFile.cs index 112755f1d..4e19570a8 100644 --- a/ICSharpCode.SharpZipLib/Zip/ZipFile.cs +++ b/ICSharpCode.SharpZipLib.Shared/Zip/ZipFile.cs @@ -9,6 +9,7 @@ using ICSharpCode.SharpZipLib.Checksum; using ICSharpCode.SharpZipLib.Zip.Compression.Streams; using ICSharpCode.SharpZipLib.Zip.Compression; +using System.Collections.Generic; namespace ICSharpCode.SharpZipLib.Zip { @@ -1273,11 +1274,12 @@ public void BeginUpdate(IArchiveStorage archiveStorage, IDynamicDataSource dataS // NOTE: the baseStream_ may not currently support writing or seeking. - updateIndex_ = new Hashtable(); + updateIndex_ = new Dictionary(); - updates_ = new ArrayList(entries_.Length); + updates_ = new List(entries_.Length); foreach (ZipEntry entry in entries_) { - int index = updates_.Add(new ZipUpdate(entry)); + int index = updates_.Count; + updates_.Add(new ZipUpdate(entry)); updateIndex_.Add(entry.Name, index); } @@ -1414,7 +1416,8 @@ void AddUpdate(ZipUpdate update) // Direct replacement is faster than delete and add. updates_[index] = update; } else { - index = updates_.Add(update); + index = updates_.Count; + updates_.Add(update); updateCount_ += 1; updateIndex_.Add(update.Entry.Name, index); } @@ -2457,7 +2460,7 @@ void UpdateCommentOnly() /// /// Class used to sort updates. /// - class UpdateComparer : IComparer + class UpdateComparer : IComparer { /// /// Compares two objects and returns a value indicating whether one is @@ -2466,13 +2469,8 @@ class UpdateComparer : IComparer /// First object to compare /// Second object to compare. /// Compare result. - public int Compare( - object x, - object y) + public int Compare(ZipUpdate zx, ZipUpdate zy) { - var zx = x as ZipUpdate; - var zy = y as ZipUpdate; - int result; if (zx == null) { @@ -3185,9 +3183,9 @@ static void WriteEncryptionHeader(Stream stream, long crcValue) UseZip64 useZip64_ = UseZip64.Dynamic; #region Zip Update Instance Fields - ArrayList updates_; + List updates_; long updateCount_; // Count is managed manually as updates_ can contain nulls! - Hashtable updateIndex_; + Dictionary updateIndex_; IArchiveStorage archiveStorage_; IDynamicDataSource updateDataSource_; bool contentsEdited_; diff --git a/ICSharpCode.SharpZipLib/Zip/ZipHelperStream.cs b/ICSharpCode.SharpZipLib.Shared/Zip/ZipHelperStream.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/ZipHelperStream.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/ZipHelperStream.cs diff --git a/ICSharpCode.SharpZipLib/Zip/ZipInputStream.cs b/ICSharpCode.SharpZipLib.Shared/Zip/ZipInputStream.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/ZipInputStream.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/ZipInputStream.cs diff --git a/ICSharpCode.SharpZipLib/Zip/ZipNameTransform.cs b/ICSharpCode.SharpZipLib.Shared/Zip/ZipNameTransform.cs similarity index 100% rename from ICSharpCode.SharpZipLib/Zip/ZipNameTransform.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/ZipNameTransform.cs diff --git a/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs b/ICSharpCode.SharpZipLib.Shared/Zip/ZipOutputStream.cs similarity index 99% rename from ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs rename to ICSharpCode.SharpZipLib.Shared/Zip/ZipOutputStream.cs index a370c13ec..f872074dd 100644 --- a/ICSharpCode.SharpZipLib/Zip/ZipOutputStream.cs +++ b/ICSharpCode.SharpZipLib.Shared/Zip/ZipOutputStream.cs @@ -4,6 +4,7 @@ using ICSharpCode.SharpZipLib.Checksum; using ICSharpCode.SharpZipLib.Zip.Compression; using ICSharpCode.SharpZipLib.Zip.Compression.Streams; +using System.Collections.Generic; namespace ICSharpCode.SharpZipLib.Zip { @@ -760,7 +761,7 @@ public override void Finish() /// /// The entries for the archive. /// - ArrayList entries = new ArrayList(); + List entries = new List(); /// /// Used to track the crc of data added to entries. diff --git a/ICSharpCode.SharpZipLib.Tests/ICSharpCode.SharpZipLib.Tests.csproj b/ICSharpCode.SharpZipLib.Tests/ICSharpCode.SharpZipLib.Tests.csproj index 534721568..b737cc49e 100644 --- a/ICSharpCode.SharpZipLib.Tests/ICSharpCode.SharpZipLib.Tests.csproj +++ b/ICSharpCode.SharpZipLib.Tests/ICSharpCode.SharpZipLib.Tests.csproj @@ -132,7 +132,7 @@ - + {0e7413ff-eb9e-4714-acf2-be3a6a7b2ffd} ICSharpCode.SharpZipLib diff --git a/ICSharpCode.SharpZipLib.Tests/Tar/TarTests.cs b/ICSharpCode.SharpZipLib.Tests/Tar/TarTests.cs index afa54348b..12117433e 100644 --- a/ICSharpCode.SharpZipLib.Tests/Tar/TarTests.cs +++ b/ICSharpCode.SharpZipLib.Tests/Tar/TarTests.cs @@ -293,7 +293,7 @@ public void HeaderEquality() h2.Version = h1.Version; Assert.IsTrue(h1.Equals(h2)); - h1.UserName = "user"; + h1.UserName = "nuser"; Assert.IsFalse(h1.Equals(h2)); h2.UserName = h1.UserName; Assert.IsTrue(h1.Equals(h2)); diff --git a/ICSharpCode.SharpZipLib.sln b/ICSharpCode.SharpZipLib.sln index df346a753..fd93866e0 100644 --- a/ICSharpCode.SharpZipLib.sln +++ b/ICSharpCode.SharpZipLib.sln @@ -3,8 +3,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpZipLib", "ICSharpCode.SharpZipLib\ICSharpCode.SharpZipLib.csproj", "{0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpZipLib.Tests", "ICSharpCode.SharpZipLib.Tests\ICSharpCode.SharpZipLib.Tests.csproj", "{82211166-9C45-4603-8E3A-2CA2EFFCBC26}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Configuration", "Solution Configuration", "{F1097E98-4DEB-4A0A-81EE-5CEC667EBDF0}" @@ -15,7 +13,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Configuration", "S Rebracer.xml = Rebracer.xml EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpZipLib.NetStandard", "ICSharpCode.SharpZipLib\ICSharpCode.SharpZipLib.NetStandard.csproj", "{BF51C1EA-5CED-4A08-A57D-FDF2E425DB70}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpZipLib", "ICSharpCode.SharpZipLib.NET45\ICSharpCode.SharpZipLib.csproj", "{0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpZipLib.NetStandard", "ICSharpCode.SharpZipLib.NETStandard\ICSharpCode.SharpZipLib.NetStandard.csproj", "{BF51C1EA-5CED-4A08-A57D-FDF2E425DB70}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -23,14 +23,14 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}.Release|Any CPU.Build.0 = Release|Any CPU {82211166-9C45-4603-8E3A-2CA2EFFCBC26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {82211166-9C45-4603-8E3A-2CA2EFFCBC26}.Debug|Any CPU.Build.0 = Debug|Any CPU {82211166-9C45-4603-8E3A-2CA2EFFCBC26}.Release|Any CPU.ActiveCfg = Release|Any CPU {82211166-9C45-4603-8E3A-2CA2EFFCBC26}.Release|Any CPU.Build.0 = Release|Any CPU + {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD}.Release|Any CPU.Build.0 = Release|Any CPU {BF51C1EA-5CED-4A08-A57D-FDF2E425DB70}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BF51C1EA-5CED-4A08-A57D-FDF2E425DB70}.Debug|Any CPU.Build.0 = Debug|Any CPU {BF51C1EA-5CED-4A08-A57D-FDF2E425DB70}.Release|Any CPU.ActiveCfg = Release|Any CPU diff --git a/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.NetStandard.csproj b/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.NetStandard.csproj deleted file mode 100644 index 764820446..000000000 --- a/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.NetStandard.csproj +++ /dev/null @@ -1,119 +0,0 @@ - - - - - 14.0 - Debug - AnyCPU - {BF51C1EA-5CED-4A08-A57D-FDF2E425DB70} - Library - Properties - ICSharpCode.SharpZipLib - ICSharpCode.SharpZipLib - en-US - 512 - {786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - - - v5.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.csproj b/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.csproj deleted file mode 100644 index 850ba5ad1..000000000 --- a/ICSharpCode.SharpZipLib/ICSharpCode.SharpZipLib.csproj +++ /dev/null @@ -1,162 +0,0 @@ - - - - - Release - AnyCPU - 2.0 - {0E7413FF-EB9E-4714-ACF2-BE3A6A7B2FFD} - ICSharpCode.SharpZipLib - ICSharpCode.SharpZipLib - Library - - 4 - - false - false - OnBuildSuccess - - - ..\bin\ICSharpCode.SharpZipLib.xml - v4.5 - - - - - - - false - true - false - false - ..\bin\Release\ - false - pdbonly - false - ..\bin\Release\ICSharpCode.SharpZipLib.xml - true - MinimumRecommendedRules.ruleset - TRACE;CODE_ANALYSIS - 0 - prompt - - - true - false - false - false - ..\bin\Debug\ - false - Full - false - ..\bin\Debug\ICSharpCode.SharpZipLib.xml - TRACE;DEBUG;CODE_ANALYSIS - true - AllRules.ruleset - prompt - - - false - Auto - 4194304 - AnyCPU - 4096 - - - true - - - ..\ICSharpCode.SharpZipLib.snk - - - - - - - - GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SharpZipLibCodeMap.dgml - - - ICSharpCode.SharpZipLib.snk - - - - - - - - \ No newline at end of file diff --git a/ICSharpCode.SharpZipLib/project.json b/ICSharpCode.SharpZipLib/project.json deleted file mode 100644 index 5e184635f..000000000 --- a/ICSharpCode.SharpZipLib/project.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "supports": {}, - "dependencies": { - "Microsoft.NETCore.Portable.Compatibility": "1.0.2", - "NETStandard.Library": "1.6.0", - "System.Collections.NonGeneric": "4.0.1" - }, - "frameworks": { - "netstandard1.3": {} - } -} \ No newline at end of file