gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 09:05:09 25 4
gpt4 key购买 nike

我正在尝试在 VS2015 预览版的 ASP.NET VNext 类库中使用 System.IO.Compression.ZipArchive。我使用 NuGet 添加了 System.IO.Compression 包,并将其作为 aspnetcore50 依赖项添加到我的 project.json 中。

当我尝试使用 ZipArchive 时,智能感知显示在 ASP.NET 5.0 中不可用,但在 ASP.NET Core 5.0 中可用。如果我使用顶部栏中的下拉菜单切换到使用 ASP.NET Core,那么我的代码会按预期工作,但是当我选择普通 ASP.NET 时它不起作用。

我尝试手动将它添加为 project.json 中的 aspnet50 的依赖项,但这并没有解决问题。

我需要在核心 CLR 上使用完整的 CLR,因为我需要在运行时将程序集加载到 AppDomain 中,我相信核心 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# - ASP.NET VNext 完整 CLR 中的 System.IO.Compression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27123649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com