C# Mono/Linux上的SevenZipSharp
我在一个C#应用程序中工作,该应用程序通过输出到7zip来处理各种类型的归档文件。正如你所能想象的,这是可怕的错误和无性能 我很想用SevenZipSharp库()来代替它,但我一辈子都无法让它在Linux上的Mono下工作。有人做到了吗?让它工作的步骤是什么 我认为实际的7zip Windows DLL在Linux上将完全无用。我尝试使用C# Mono/Linux上的SevenZipSharp,c#,linux,mono,C#,Linux,Mono,我在一个C#应用程序中工作,该应用程序通过输出到7zip来处理各种类型的归档文件。正如你所能想象的,这是可怕的错误和无性能 我很想用SevenZipSharp库()来代替它,但我一辈子都无法让它在Linux上的Mono下工作。有人做到了吗?让它工作的步骤是什么 我认为实际的7zip Windows DLL在Linux上将完全无用。我尝试使用p7zip附带的7z.so文件,但SevenZipSharp抱怨“入口点不存在” 我还试着获取源代码。有一个看起来很有希望的SevenZipMono子项目,但
p7zip
附带的7z.so
文件,但SevenZipSharp抱怨“入口点不存在”
我还试着获取源代码。有一个看起来很有希望的SevenZipMono
子项目,但由于几个源代码文件不存在,它没有构建。(COM.cs
,MonoSpec.cs
,InterfaceWrapper.cs
,等等)由于某种原因,这些文件似乎没有被提交。在这一点上,我完全被卡住了
(我还在GitHub上发现了一个SevenZipSharp分叉,但它似乎与主项目相同。它也不是出于完全相同的原因构建的。)
关于如何让这些东西真正起作用有什么建议吗?到目前为止,您有两种选择
我不熟悉该项目,但在查看了源代码之后,由于与kernel32和COM的互操作,我觉得它像是一个Windows特定的项目。我想,即使是Mono实现也是为在Windows下而不是Linux下工作而设计的。与以前的版本相比,NET4.5内置的zip支持有了很大改进。查看System.IO.Compression。这是一种选择吗?@JoelCoehoorn我不仅仅对一种格式感兴趣。我想要处理7z、PK-zip、GZip、BZip2、tar、rar、zoo、compress等的库。为每一个库找到一个单独的库并不困难,但处理所有库的库并不多。选项2似乎只包含7z文件。我想处理各种类型的存档。这就是为什么我没有选择使用7zip已经提供的LZMA SDK;“它只涵盖7z。@MathematicalArchid,我刚刚编辑了我的答案,因为有一个更好的库支持最常见的格式。SharpCompress已经有一段时间没有维护了。我第一次尝试使用它导致失败,首先识别一个7z文件,然后读取它。遗憾的是,在C#上没有更好的7Zip支持,它在GitHub的最后一次提交是在2014年7月1日。我不认为这是“已经有一段时间没有维护了”。关于您遇到的失败,您介意打开一个问题并咨询开发人员吗?现在,SharpCompress没有实现LZMA2压缩,它的PPMd解压缩非常慢。它的主页发现了一个单声道版本,但我仍然没有测试它。