DotNetZip 已弃用。 .NET Framework 4.8 最简单的替代品是什么?

问题描述 投票:0回答:1

我们有一个针对 .NET Framework 4.8 的解决方案,其中包含 80 多个项目,并且该解决方案中的一些项目引用了 DotNetZip 的 nuget 包。现在已弃用:

Screen shot of Deprecation message

我真的很想避免重写大量代码来针对不同的包。我们开始使用 Ionic.zip。这个包很久以前就被弃用了,但它附带了一条建议“这个包已被弃用。请改用 DotNetZip”。我们用 DotNetZip 替换了 Ionic.Zip。那很容易。但随着 DotNetZip 的弃用,我们得到的只是“此软件包版本已弃用”,而没有任何推荐。用什么代替。

现在怎么办?

.net-4.8 dotnetzip
1个回答
0
投票

根据与 Joachim Sauer 和 Anders 的讨论,我注意到发布任何命名包的实际建议将偏离主题,因此我将限制自己对如何解决问题进行一般性解释。

Joachim 发布了一个指向 https://github.com/haf/DotNetZip.Semverd 的链接,其中包含 DotNetZip 的存档代码库。也许它可以帮助某人删除这段代码并修改它以满足自己的需要。对我们来说这太过分了。

Joachim 还建议围绕本机压缩软件 system.io.compression 编写一个包装器,这对某些人来说可能是一个有用的练习,但 Anders 指出,如果您需要用完全兼容的包装器作为系统替换 DotNetZip,那么这将不起作用。例如,io.compression 不支持密码。

最后,我研究了我们的代码库,发现我们只使用了 DotNetZip 中非常有限的压缩功能子集。我还发现我们使用付费(而且相当昂贵)的商业第三方工具集,其中包括用于处理档案的组件。

因此,我确实围绕这个组件编写了一个包装器,它允许我用对我们自己的组件的调用来替换我们在软件中各个位置使用的原始 Ionic.Zip 调用,该组件看起来足够相似,可以使替换代码的剪切和粘贴工作变得简单.

我花了大约一天的时间来确保它在我们曾经使用 DotNetZip 的代码中的所有地方都完成了,现在我们的代码不再具有这种依赖性。

如果对于其他希望删除对 DotNetZip 依赖项的人来说这还不够,我深表歉意

© www.soinside.com 2019 - 2024. All rights reserved.