gpt4 book ai didi

c# - dnx 不加载正确的 .Net 库

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:57 25 4
gpt4 key购买 nike

我试图在我的 CentOS 机器上使用 dnx 和 kestrel 运行 .Net WebApi,但我收到很多“ namespace ‘blahblah’中不存在类型或 namespace ‘blah’”的错误,这提示,那个 dnx 出于某种原因使用了一些旧程序集,这些程序集确实没有定义后者。到目前为止,我已经成功地在与自托管应用程序相同的机器上运行带有单声道的相同 WebApi。它也已使用 xbuild 成功编译,但到目前为止,使用 dnx 编译它并在 kestrtel 上托管时运气不佳。这是我第一次使用 dnx,我确信我做错了什么,但谷歌搜索和阅读仍然无法帮助我理解到底哪里出了问题。我的 project.json 如下:

    {
"webroot": "./",
"dependencies": {
"Kestrel": "1.0.0-beta5",
"Microsoft.AspNet.Diagnostics": "1.0.0-beta5",
"Microsoft.AspNet.Hosting": "1.0.0-beta5",
"Microsoft.AspNet.Mvc": "6.0.0-beta5",
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
"Microsoft.Framework.ConfigurationModel.Json": "1.0.0.0-beta5",
"System.Net.Http": "4.0.0-beta5",
"System.Web.Http": "2.0.0",
"Autofac": "3.5.2",
"Autofac.WebApi2": "3.4.0",
"Microsoft.AspNet.Cors": "5.2.3",
"Microsoft.AspNet.SignalR": "2.2.0",
"Microsoft.AspNet.SignalR.Core": "2.2.0",
"Microsoft.AspNet.SignalR.JS": "2.2.0",
"Microsoft.AspNet.SignalR.SystemWeb": "2.2.0",
"Microsoft.AspNet.WebApi": "5.2.3",
"Microsoft.AspNet.WebApi.Client": "5.2.3",
"Microsoft.AspNet.WebApi.Core": "5.2.3",
"Microsoft.AspNet.WebApi.WebHost": "5.2.3",
"Microsoft.Owin": "3.0.1",
"Microsoft.Owin.Cors": "3.0.1",
"Microsoft.Owin.Host.SystemWeb": "2.1.0",
"Microsoft.Owin.Security": "3.0.1",
"Newtonsoft.Json": "5.0.4"
},
"commands": {
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5001",
"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:5004"
},
"frameworks": {
"dnx451": {
}
}}

最大的错误与 System.Configuration.Configurationmanager 有关,dnx 无法在 System.Configuration 中找到它,而类型来自 System.Runtime.Caching,在后一种情况下,dnx 根本找不到 System.Runtime.Caching。错误还说,我使用的 dnx verison 是 v4.5.1,我想它应该理解 .Net 4.5.1。 dnvm list 命令显示 1.0.0-beta6。有没有可能我必须手动提供必要的 dll?如果是这样,我应该把它们放在哪里?如果此问题的原因不同,那可能是什么?如果有人可以解释有关 dnx 的基础知识,我将不胜感激:即我在哪里可以找到它的配置文件,它把包和 dll 放在哪里,它是否使用单声道,或者它有自己的运行时,它使用什么编译器,以及我应该获取它的特定版本等吗?

最佳答案

您的目标是 dnx451 框架,它是完整的 .Net Framework SDK。这个框架在 CentOS 上不可用(RedHat Clone 对吗?)但只有 dnxcore。

您的依赖项内部有多个实现,一个用于 dnx,一个用于 dnxcore。如果编译为 dnx451,依赖项将使用 dnx451 的实现,它依赖于 .Net Framework SDK。如果您要编译为 dnxcore,依赖项将使用 dnxcore 实现(可能)不使用 System.Configuration.ConfigurationManager。

System.Configuration 命名空间被重写为 .Net Core 的一部分。

但与 DNX 一样:所有测试版,错误无处不在。

关于c# - dnx 不加载正确的 .Net 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31854276/

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