以下是我正在使用的代码的示例,但我找不到问题的修复程序。使用C#我非常环保,但我已经为7Zip引用了库,尽管编译代码时出现以下错误。 Visual Studio中标记的行有注释。
错误消息:无法加载7-zip库或内部COM错误! 消息:库无效。
namespace SevenZipTest
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Compression for Multi-volumes has begun");
string dll = @"C:\Project\VsProgram\libs\SevenZipSharp.dll";
string source = @"SourceFilePath";
string output = @"ZipFileOutputPath";
SevenZipCompressor.SetLibraryPath(dll);
SevenZipCompressor compressor = new SevenZipCompressor();
compressor.ArchiveFormat = OutArchiveFormat.SevenZip;
compressor.CompressionMode = CompressionMode.Create;
compressor.TempFolderPath = System.IO.Path.GetTempPath();
compressor.VolumeSize = 10000000; // output file size in bytes
compressor.CompressDirectory(source, output); //This line is where I am getting the flag in the code that gives me the listed error message.
Console.ReadLine();
}
}
}
关于这一点需要注意的一点是我已经对它进行了一些研究,我也尝试了不同的代码结构方法,但我所看到的大部分内容都没有为我提供解决方案。这可能是一个重复的问题,但我还没有为我的目的找到一个来源。
我几乎可以通过Google阅读我能找到的所有帖子。
在代码中应用了修复程序,我已经能够运行该程序了,但我现在收到一个异常说:
"由于SevenZipSharp中的错误,执行失败。请 报告它 http://sevenzipsharp.codeplex.com/WorkItem/List.aspx,发布后发布 编号并附上档案。"
我现在想看看我能找到什么。
答案 0 :(得分:3)
如果启动项目在其属性中设置为“首选32位”,则在指定64位7z.dll时可能会导致此错误。取消选中该属性可以为我解决此错误。
答案 1 :(得分:2)
SevenZipSharp需要一个7-zip 原生库才能运行。您必须在致电SetLibraryPath
时指定7-zip dll(7z.dll,7za.dll等)的路径。
您正在做的是指定SevenZipSharp 程序集dll 的路径,这是没有意义的:它不是本机7zip库。获取7z.dll
(例如来自here)并设置dll
路径。