C# 为解压文件引用shell32适用于w7,但不适用于xp

C# 为解压文件引用shell32适用于w7,但不适用于xp,c#,.net,winapi,C#,.net,Winapi,嗨,我用它把文件解压缩到一个目录 private string UnzipFile(string inputFileName, string destinationPath) { Shell shell = new ShellClass(); Folder folder = shell.NameSpace(inputFileName); Folder folder2 = shell.NameSpace(destinationPath); string name =

嗨,我用它把文件解压缩到一个目录

private string UnzipFile(string inputFileName, string destinationPath)
{
    Shell shell = new ShellClass();
    Folder folder = shell.NameSpace(inputFileName);
    Folder folder2 = shell.NameSpace(destinationPath);
    string name = folder.Items().Item(0).Name;
    folder2.CopyHere(folder.Items(), "");
    return name;
}
编译项目时,它还提供interop.shell32.dll

我通过ilmerge将interop.shell32.dll与可执行文件合并

我编译@win7 vs 12

但unzipfile函数会使Windows xp sp2程序崩溃


知道原因吗?

it崩溃并不是对问题的充分描述。您必须记录所看到的确切异常消息才能获得帮助。如果您没有,那么您需要首先改进程序中未处理的异常报告。您对此有任何解决方案吗?@L.E.我想我使用了另一个库,如7zip