CS0246:找不到类型或命名空间名称“ZipArchive”,但dll在GAC中

问题描述 投票:0回答:1

这个错误在SO上有很多问题,但对我来说问题不在VisualStudio 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错误,以及如何解决这个问题?请帮忙

asp.net dll gac
1个回答
0
投票

我通过将依赖关系从Web站点项目移动到类库项目来解决我自己的问题。但是,知道为什么这是必要的仍然会很好。

© www.soinside.com 2019 - 2024. All rights reserved.