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

前端之家收集整理的这篇文章主要介绍了c# – System.IO.Compression在ASP.NET VNext中完整的CLR前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在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");            
    }

猜你在找的C#相关文章