加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – System.IO.Compression在ASP.NET VNext中完整的CLR

发布时间:2020-12-15 04:36:03 所属栏目:百科 来源:网络整理
导读:我试图在VS2015 Preview中的ASP.NET VNext类库中使用System.IO.Compression.ZipArchive.我使用NuGet添加了System.IO.Compression包,并将其作为aspnetcore50依赖项添加到我的project.json中. 当我尝试使用ZipArchive时,Intellisense说在ASP.NET 5.0中不可用,
我试图在VS2015 Preview中的ASP.NET VNext类库中使用System.IO.Compression.ZipArchive.我使用NuGet添加了System.IO.Compression包,并将其作为aspnetcore50依赖项添加到我的project.json中.

当我尝试使用ZipArchive时,Intellisense说在ASP.NET 5.0中不可用,但它在ASP.NET Core 5.0中可用.如果我切换到使用顶部栏中的下拉列表使用ASP.NET Core,那么我的代码按预期工作,但是当我选择正常的ASP.NET它不起作用.

我尝试手动添加它作为一个依赖项到aspnet50在project.json,但是没有修复它.

我需要在Core CLR上使用完整的CLR,因为我需要在运行时将程序集加载到AppDomain中,我相信Core CLR不支持这种方式.

请有人解释这里发生了什么,也许指出一些文章或博客文章,告诉我如何解决这个问题.

更新:
我想一个更好的方法或措辞这是 – ZipArchive在aspnet50中不可用,但是当我添加System.IO.Compression NuGet软件包时,它可以在aspnetcore50中使用.为什么是这样?

解决方法

他们只有我得到项目编译和工作正在project.json中进行以下操作.我不太熟悉压缩库,所以我没有花时间尝试压缩文件.下面你将会编写一个没有问题的代码.
{
    "version": "1.0.0-*","dependencies": {

    },"frameworks": {
        "aspnet50": {
            "dependencies": {

            },"frameworkAssemblies": {                
                "System.IO.Compression": "4.0.0.0"

            }
        },"aspnetcore50": {
            "dependencies": {
                "System.Runtime": "4.0.20-beta-22231","System.IO.Compression.ZipFile": "4.0.0-beta-22231","System.IO": "4.0.10-beta-22231","System.IO.FileSystem": "4.0.0-beta-22231"

            }
        }
    }
}

示例代码

public static void ZipFile(string path)
    {
        var data = new MemoryStream(File.ReadAllBytes(path));
        var zip = new ZipArchive(data,ZipArchiveMode.Create,false);
        zip.CreateEntry(path + ".zip");            
    }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读