【问题标题】:Type ZipArchive is not defined not defined when in App_Code Folder在 App_Code 文件夹中未定义类型 ZipArchive
【发布时间】:2015-02-23 03:51:45
【问题描述】:

我有一个 VS2013 vb.net 项目。

我希望使用 zip 库。我有这两个参考集:

我有以下代码:

一切都设置为 .net 4.5

有什么方法可以“强制”VS2013 识别压缩库吗?互联网上有大量的这个问题的例子,如果不是大量的例子!!!他们都与互联网上的上述完全相同的问题完全相同,并且在每种情况下,他们都建议参考上述 2 个 4.5 库,问题就消失了。

但是,网上现有的问题没有一个不跟进WHEN WHEN 以上的references ARE 设置,我们还是有类型失败!!!

如果我将项目设置为 4.51 或 .net 4.5,则会发生故障

VS2013,vb.net.

我确实将项目强制为 x64,但更改为 x32 并没有改变任何东西。

编辑: 上面的示例代码放在一个 asp.net App_Code 文件夹(一个 web 项目)中。我注意到,如果我从该文件夹中提取代码并将代码直接放在一个表单中(aspx.vb),那么代码就可以工作。所以限制或问题是 App_Code。我有一个结果更改了标题并添加了“在 App_Code 文件夹中时”。

有什么想法吗?

【问题讨论】:

  • 刚刚做了一个文件|新项目并按预期工作。尝试做同样的事情并区分 proj 文件?否则可能你的机器出了什么问题?
  • 嗯,我创建了一个空白的Web项目,如果代码模块放在App_code中,问题仍然存在。如果我将代码放在 web 表单 aspx.vb 模块中,那么它可以工作。所以我想我“可以”改变这个问题,即如何将 Zip 库用于 App_Code 文件夹中的代码? (有问题的模块设置为编译)。
  • 我只用一个 VB 控制台应用程序测试过
  • 是的,如前所述,即使现有的应用程序也可以工作。 “问题”是当代码放在 App_Code 中时,它既不能工作也不能编译。如前所述,也许我应该重新措辞这个问题,以反映代码仅在放置在 App_Code 内时才会中断的事实。

标签: asp.net .net vb.net


【解决方案1】:

同样的问题...解决了手动添加引用

<add assembly="System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
<add assembly="System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />

在 web.config 中

<system.web>
  <compilation>
    <assemblies>
      <add assembly="System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
      <add assembly="System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    </assemblies>
  </compilation>
<system.web>

我希望它也对你有用:D

【讨论】:

  • 确实这是正确答案!一个简单的问题是,如果您创建一个 .net 项目而不是网站,那么 APP_FOLDER 中的代码不会接收并正确继承项目引用。解决方案是将 APP_FOLDER 重命名为其他名称,或者将引用直接添加到 web.config 文件中,就像你已经完成的那样!因此,您的答案是正确的,并且是唯一解决此问题的答案。问题当然是 APP_CODE 文件夹。
【解决方案2】:

查看有关压缩的参考资料

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 2013-10-10
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多