SevenZipSharp on Mono / Linux

本文关键字:Linux Mono on SevenZipSharp | 更新日期: 2023-09-27 18:28:23

我在一个C#应用程序中工作,该应用程序通过扩展到7zip来处理各种类型的归档文件。正如你可以想象的,这是可怕的bug和非性能。

我非常想用SevenZipSharp库来代替它(http://sevenzipsharp.codeplex.com/),但我一辈子都无法让它在Linux上的Mono下工作。有人做到了吗?让它发挥作用的步骤是什么?

我认为真正的7zip Windows DLL在Linux上将完全无用。我尝试使用p7zip附带的7z.so文件,但SevenZipSharp抱怨"入口点不存在"。

我还试着获取源代码。有一个看起来很有希望的SevenZipMono子项目,但由于没有几个源代码文件,它没有构建。(COM.csMonoSpec.csInterfaceWrapper.cs等)看起来好像由于某种原因,文件实际上还没有提交。在这一点上,我完全陷入了困境。

(我还在GitHub上找到了SevenZipSharp的一个分支,但它似乎与主项目完全相同。它的构建原因也不完全相同。)

关于如何让这些东西真正发挥作用,有什么建议吗?

SevenZipSharp on Mono / Linux

到目前为止,您有两个选项,

  1. 将Mono/Linux上的SevenZipSharp修复为PInvoke 7z.so。这需要您更改源代码中的PInvok定义,并重新编译源文件。如果这个项目的开发人员还没有把它做好,我认为你需要非常注意这种方法。

  2. 切换到完全管理的实现,如

https://github.com/adamhathcock/sharpcompress