2

我正在一个 C# 应用程序中工作,该应用程序通过使用 7zip 来处理各种类型的存档文件。正如您可以想象的那样,这是非常糟糕且性能不佳的。

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

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

我也尝试获取源代码。有一个看起来很有希望的SevenZipMono子项目,但由于几个源代码文件不存在,它没有构建。( COM.cs, MonoSpec.cs, InterfaceWrapper.cs, 等) 看起来好像文件由于某种原因实际上没有被提交。在这一点上,我完全被困住了。

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

关于如何使这些东西真正起作用的任何建议?

4

1 回答 1

0

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

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

  2. 切换到完全托管的实施,例如

https://github.com/adamhathcock/sharpcompress

于 2013-08-21T09:50:39.570 回答