How would i use Sevenzipsharp with this code?

后端 未结 3 862
情深已故
情深已故 2020-12-17 18:22

iv tried numerous different ways to get this to work and i got it to basicly work but i cant get the WaitForExit(); \'s to work like they do here... so how would i convert t

3条回答
  •  南方客
    南方客 (楼主)
    2020-12-17 19:11

    Reference SevenZipSharp.dll from you .NET project and make sure you have the 7z DLL copied to the target output directory as a post-build event. Since 7z.dll is not a .NET assembly your .NET project cannot reference it directly.

    There are two typical explanations for "Can not load 7-zip library or internal COM error! Message: failed to load library":

    1. The obvious is that the 7z DLL can't be found. In that case call SevenZipCompressor/SevenZipExtractor.SetLibraryPath() with the full path of the DLL before making any related SevenZipSharp calls. Relative paths should work as well but try the absolute in case some code changed the current directory of the process. One strategy to get the absolute path is to use the path of the executing assembly, see below for an example.

    2. The architecture of the DLL being referenced doesn't match the current process. For example your .NET assembly is running x64 but you reference a 32-bit version of 7z.dll. In that case you would need to reference 7z64.dll. Download the 7-Zip DLL binaries from SevenZipSharp's release to ensure there are no other mismatch issues and make sure you're using the correct version.

    Here is an example how to set the absolute path of the 7z.dll if it's in the same directory as the assembly using it:

    SevenZip.SevenZipCompressor.SetLibraryPath(
        Path.Combine(
            Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),  
            "7z.dll"));
    

提交回复
热议问题