我如何在Linux上运行的.NET Core应用程序中使用7zip?

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

我们有一个.NET Core应用程序托管在Azure Service Fabric中。现在,我们将其移至基于Linux的Docker容器。

我们需要能够为外部服务创建7zip归档文件(其中之一是需要7zip归档文件的“通过ftp将文件放在此处”界面)。

直到现在,我们可以使用从.NET Framework移植到.NET Core的CLI包装器。但这一旦我们切换到Linux环境就不再起作用。

我们无法更改外部服务(因为它不是我们的,我们也不想使用基于Windows的Docker容器。

。NET Framework有大量的7zip NuGet软件包。 .NET Core的功能很少(大多已过时且不再维护)。我找不到Linux上的.NET Core。

您对我们如何解决该问题有任何建议吗?


UPDATE:我在SevenZipSharp项目的未解决问题中发现了一个类似的问题。遗憾的是,没有解决方案。


UPDATE 2:不幸的是,我们不能使用LZMA算法的替代实现。我们的第三方需要.7z格式的档案:-(

linux .net-core 7zip sevenzipsharp
1个回答
0
投票

这不是答案,因为它并没有真正提供问题的解决方案,但确实解决了为什么不太可能会出现针对Linux的更新的7Zip库,并通过良好的LZMA OS跨平台压缩来解决该问题的原因。发动机。因此,应该将其视为冗长的注释,我希望可以。

似乎7Zip根本没有在Linux上维护,当前库已经相当老了,我不相信它与当前和更新的Windows 7Zip版本兼容,因此在我看来Linux上的7Zip是行不通的。据我了解,Igor Pavlov(Zip的创建者和维护者)仅针对Windows。而且他不是当前和旧的Linux 7Zip库的创建者。

具有Linux和Windows支持的LZMA压缩引擎是LZip(.lz)。

[最新库(zlib)是1.11,在2019年7月,我向Domani Hannes发送了一个编译新Windows版本的请求,他希望通过下载链接和以下消息进行回复:

我刚刚使用lzlib-1.11和mingw-w64-winpthreads-v6.0.0构建了plzip-1.8。无需再进行任何修改就可以为Windows编译,因此非常简单。

我想这意味着将来也很容易编译较新的Windows版本。

下载此二进制文件的链接:plzip_zlib_1.11.exe

我还没有时间为我自己的项目进行全面测试,因此,如果有人沿着这条路走,请分享您的经验(可能会劫持该线程,所以可能不是:-P)。

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