【问题标题】:Unzip archive in .Net CORE 1.0在 .Net CORE 1.0 中解压缩存档
【发布时间】:2016-01-22 17:50:04
【问题描述】:

我目前正在开发一个 ASP.NET Core 1.0 项目。我想同时留在 dnxcore50dnx451 上。现在让我想到以下问题:

如何将 zip 存档从文件系统解压缩到目录?

"System.IO.FileSystem.Primitives": "4.0.0-beta-22816",
"System.IO.FileSystem": "4.0.0-beta-22816"

"frameworks": {
    "dnx451": {
      "frameworkAssemblies": {
        "System.IO": ""
      }
    },
    "dnxcore50": {
      "dependencies": {
        "System.IO": "4.0.10-beta-*"
      }
    }
  }

通过 project.json 中的配置,我现在可以获得 GZipStream,但我不知道如何将该流存储到目录中。不幸的是,System.IO.Compression.ZipFile.ExtractToDirectory() 方法中的 ZipFile 对象在核心框架中不存在:/.

更新:

我现在以这种方式包含它并将其从整体依赖项中删除:

"frameworks": {
"dnx451": {
  "dependencies": {
    "System.IO.Compression.ZipFile": "4.0.1-beta-23516"
  }
},
"dnxcore50": {
  "dependencies": {
    "System.IO.Compression.ZipFile": "4.0.1-beta-23516"
  }
}

当我使用核心运行应用程序时,它按预期工作,但使用 .net 框架 4.6 运行它时,我在运行时崩溃并出现以下异常:

处理请求时发生n个未处理的异常。

An unhandled exception occurred while processing the request.
FileNotFoundException: Could not load file or assembly 'System.IO.Compression.ZipFile, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. The system cannot find the file specified.

【问题讨论】:

  • 嗯,are you sure?
  • 感谢您的回答。我发现了我的错误。我使用了 System.IO.Compression.ZipFile 4.0.0 的最后一个稳定版本,但它似乎已添加到 4.0.1-beta-23516 @JoachimIsaksson
  • 更新了我的问题。你能再帮我一次吗? @JoachimIsaksson

标签: c# .net zip asp.net-core .net-core


【解决方案1】:

你在你的project.json中需要的依赖如下。

"frameworks": {
    "net451": {
      "frameworkAssemblies": {
        "System.IO.Compression": "4.0.0.0",
        "System.IO.Compression.FileSystem":  "4.0.0.0"
      }
    },
    "dnxcore50": {
      "dependencies": {
        "System.IO.Compression.ZipFile": "4.0.1-beta-23516"
      }
    }
  },

project.json 根目录中的依赖项适用于适用于您正在使用的所有运行时的任何包。

.net 运行时中的 frameworkAssemblies 与您在基于 csproj 的普通项目中添加的引用相同。如果您不确定要添加什么,可以在此处找到程序集。 https://msdn.microsoft.com/en-us/library/mt472912(v=vs.110).aspx。对于任何特定于网络的引用,您都可以使用此处的依赖项部分。

当涉及到 dnxcore50 时,依赖项引用直接来自 nuget,但您可以使用智能感知来找到这些。

关于 project.json 的更多信息可以在这里找到https://github.com/aspnet/Home/wiki/Project.json-file

【讨论】:

  • thx,现在它按预期工作,但我在哪里知道我必须添加哪些框架组件?我不知道这是怎么回事。 project.json 有一些文档吗?
  • 我已经更新了我的答案,提供了更多信息,如果您不确定,请留下另一条评论
  • 谢谢,为什么叫frameworkAssemblies和其他时间依赖?
  • frameworkAssemblies 适用于框架本身附带的任何程序集,这更适用于 .net,因为 .netcore 的所有框架程序集都在 nuget 上,依赖项适用于解决方案中的任何项目或 nuget 上的包
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-20
  • 2010-10-12
  • 2014-10-08
  • 1970-01-01
  • 1970-01-01
  • 2019-10-05
相关资源
最近更新 更多