asp.net5发神经一例 ------无法加载依赖
博客专区 > noonoo 的博客 > 博客详情
asp.net5发神经一例 ------无法加载依赖
noonoo 发表于2年前
asp.net5发神经一例 ------无法加载依赖
  • 发表于 2年前
  • 阅读 297
  • 收藏 0
  • 点赞 0
  • 评论 0

【腾讯云】买域名送云解析+SSL证书+建站!>>>   

摘要: asp.net5

代码就是示例代码,原来根据流程,配置的好好的,突然就不能用了

症状如下:

dnx web
Error: Unable to load application or execute command 'Microsoft.AspNet.Server.Kestrel'. Available commands: web.

通过dnu restore也不管用。查看一下运行环境吧(好像我尝试过升级dnvm update-self):

dnvm
   ___  _  ___   ____  ___
  / _ \/ |/ / | / /  |/  /
 / // /    /| |/ / /|_/ /
/____/_/|_/ |___/_/  /_/
.NET Version Manager v1.0.0-rc2-15546
By Microsoft Open Technologies, Inc.
usage: dnvm <command> [<arguments...>]

dnvm list
Active Version           Runtime Architecture OperatingSystem Alias
------ -------           ------- ------------ --------------- -----
  *    1.0.0-rc1-update1 clr     x86          win             default

一个是rc1,一个是rc2.于是先升级一下,dnvm upgrade,但是提示我是最新的,不需要升级

此时dnx build报错,无法加载依赖

dnu build
Microsoft .NET Development Utility Clr-x86-1.0.0-rc1-16231

Building HelloWeb for DNX,Version=v4.5.1
  Using Project dependency HelloWeb 1.0.0
    Source: E:\asphome\samples\latest\HelloWeb\project.json
    
  Unable to resolve dependency Microsoft.AspNet.Server.Kestrel 1.0.0

  Unable to resolve dependency Microsoft.AspNet.IISPlatformHandler 1.0.0

  Unable to resolve dependency Microsoft.AspNet.Diagnostics 1.0.0

  Unable to resolve dependency Microsoft.AspNet.Hosting 1.0.0

  Unable to resolve dependency Microsoft.AspNet.StaticFiles 1.0.0

  Unable to resolve dependency Microsoft.Extensions.Logging.Console 1.0.0

  Using GlobalAssemblyCache dependency fx/mscorlib
    Source: C:\WINDOWS\Microsoft.NET\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
    下面还有好长的报错:

我去dnx的路径里查一下包的情况:  .dnx\packages\Microsoft.AspNet.Server.Kestrel

更加确认是rc2引起的问题了。

后来搜索相关信息,发现这个命令:dnvm upgrade -u  就是升级到开发版本。Latest Unstable

dnvm upgrade -u
Determining latest version
Downloading dnx-clr-win-x86.1.0.0-rc2-16319 from https://www.myget.org/F/aspnetvnext/api/v2
Installing to C:\Users\shenj\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc2-16319
Adding C:\Users\shenj\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc2-16319\bin to process PATH
Adding C:\Users\shenj\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc2-16319\bin to user PATH
Updating alias 'default' to 'dnx-clr-win-x86.1.0.0-rc2-16319'

dnvm list

Active Version           Runtime Architecture OperatingSystem Alias
------ -------           ------- ------------ --------------- -----
       1.0.0-rc1-update1 clr     x86          win
  *    1.0.0-rc2-16319   clr     x86          win             default

此时切换到项目路径,直接dnx web,还是失败。dnu restore之后,再运行,就成功了。

总结:

个人认为此次原因是asp.net5升级到rc2引起的,dnu restore时,下载了rc2的包,但运行是环境却升不了级,不匹配。

为什么dnvm upgrade不管用呢?为什么我运行环境没有升级到rc2时,都能restore出来rc2的包,这是一大疑问,是微软的问题吧

我又想到,原来运行时,一直是1.0.0-rc1-final来着,不知道怎么变成1.0.0-rc1-update1了。dnu restore的包不匹配是不是由此引起的呢?

最后,我失望的发现,.dnx/packages里的程序包是多个版本同时存在的,它的体积到目前有1.25GB。比安装.net framework还要坑。

难道是我经常restore的错,不知道有没有清除的命令。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 13
博文 57
码字总数 28625
×
noonoo
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: