此错误对SO有很多问题,但对我来说,问题不在Visual Studio 2017的开发计算机上,而是在部署计算机上。两台机器都安装了.Net 4.5。该项目是.Net 4.5。项目中的引用还可以,我可以使用ZipArchive
类进行测试。
在源代码中我有一个
using System.IO.Compression;//GZipStream, ZipArchive
在两台机器上,我都找到了System.IO.Compression的3个dll,不在C:\ Windows \ assembly中,而是在类似这样的目录中,应该可以:
C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.IO.Compression\v4.0_4.0.0.0__b77a5c561934e089
在web.config中有一行:
<add assembly="System.IO.Compression, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
在网站项目属性页面中,我看到了对
的引用 System.IO.Compression GAC 4.0.0.0
在生产计算机上的IIS中,应用程序池位于.Net v4.0上。
在那台机器上,在Internet Explorer的“详细的编译器输出”下,我看到很多引用上面目录路径的选项,例如:
/R:"C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\
v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll"
/R:"C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.Services\
v4.0_4.0.0.0__b77a5c561934e089\System.Data.Services.dll"
那么为什么我可以在开发计算机上使用ZipArchive类,但是在部署计算机上却出现could not find
错误,以及如何解决此问题?请帮助
答案 0 :(得分:0)
我通过将依赖关系从网站项目移到类库项目解决了自己的问题。不过,仍然很高兴知道为什么这样做是必要的。