找不到System.IO.Compression程序集

时间:2019-01-11 11:21:16

标签: c# nuget assemblies

致电System.IO.Compression.Zipfile.CreateFromDirectory时遇到以下错误:

Exception on System.IO.Compression

但是,我的项目确实包含错误中提到的程序集的第一个版本(见下面的屏幕截图)。

搜索后,我发现此错误可能是由于没有System.IO.Compression.FileSystem程序集而引起的,该程序集是:enter image description here

我尝试使用/删除 System.IO.Compression.Zipfile程序集(我发现它只是与System.IO.Compression.FileSystem的“链接”),更改了System.IO.Compression版本,但没有任何效果。

该项目在.NET Framework 4.6.1下运行。
有谁知道如何解决这个问题?谢谢!

2 个答案:

答案 0 :(得分:2)

您可以在应用程序的配置文件中手动添加以下绑定重定向:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.IO.Compression.ZipFile" publicKeyToken="b77a5c561934e089" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

更改此

 <runtime>
    <AppContextSwitchOverrides value="Switch.System.IO.Compression.ZipFile.UseBackslash=true" />
    </runtime>

收件人

 <runtime>
    <AppContextSwitchOverrides value="Switch.System.IO.Compression.ZipFile.UseBackslash=false" />
    </runtime> 

答案 1 :(得分:0)

就我而言,我在web.config runtime / assemblyBinding节点中添加了以下内容:

<dependentAssembly>
  <assemblyIdentity name="System.IO.Compression" publicKeyToken="b77a5c561934e089" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.0.0.0" />
</dependentAssembly>