当前位置:  开发笔记 > 编程语言 > 正文

无法解析依赖关系> = 1.0.0-rc1-update1

如何解决《无法解析依赖关系>=1.0.0-rc1-update1》经验,为你挑选了1个好方法。

我想将我的C#Web应用程序更新到下一个asp.net版本.

我跑了

dnvm use  1.0.0-rc1-update1 -r clr arch x64 -p

和dnvm列表显示活动版本已设置为rc1-update1

现在我想更新我的VS2015解决方案以使用rc1-update1

我编辑了project.json来将版本从rc1-final更新为rc1-update1

但VS现在表示"包恢复失败".我有这样的错误消息.

Severity    Code    Description Project File    Line    Suppression State
Error   CS0234  The type or namespace name 'AspNet' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)    MyBootStrap.DNX 4.5.1    

将鼠标悬停在project.json中已编辑的依赖项上

在此输入图像描述

我一定是错过了一步.如何升级项目以使用框架的Active版本?

[更新]当我从模板创建一个新的Web应用程序时,我注意到它仍在使用rc1-final.

解决方案资源管理器窗口中还有一条消息"包恢复失败"输出显示以下内容

PATH=.\node_modules\.bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External;
%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\git
C:\Users\kirsten\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\dnx.exe "C:\Users\kirsten\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\lib\Microsoft.Dnx.Tooling\Microsoft.Dnx.Tooling.dll" 
restore "E:\EShared\Dev2016\MyBootStrap\src\MyBootStrap" -f "C:\Program Files (x86)\Microsoft Web Tools\DNU"
Microsoft .NET Development Utility Clr-x86-1.0.0-rc1-16231
  CACHE https://www.nuget.org/api/v2/
Restoring packages for E:\EShared\Dev2016\MyBootStrap\src\MyBootStrap\project.json
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.IISPlatformHandler'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.TagHelpers'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.Kestrel'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.StaticFiles'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Tooling.Razor'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Extensions.Configuration.FileProviderExtensions'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Extensions.Configuration.Json'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Extensions.Logging'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Extensions.Logging.Console'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Extensions.Logging.Debug'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.VisualStudio.Web.BrowserLink.Loader'
Unable to locate Dependency Microsoft.AspNet.Diagnostics >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.AspNet.IISPlatformHandler >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.AspNet.Mvc >= 6.0.0-rc1-update1
Unable to locate Dependency Microsoft.AspNet.Mvc.TagHelpers >= 6.0.0-rc1-update1
Unable to locate Dependency Microsoft.AspNet.Server.Kestrel >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.AspNet.StaticFiles >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.AspNet.Tooling.Razor >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.Extensions.Configuration.FileProviderExtensions >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.Extensions.Configuration.Json >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.Extensions.Logging >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.Extensions.Logging.Console >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.Extensions.Logging.Debug >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.VisualStudio.Web.BrowserLink.Loader >= 14.0.0-rc1-update1
Writing lock file E:\EShared\Dev2016\MyBootStrap\src\MyBootStrap\project.lock.json
Restore complete, 413ms elapsed

从这里我看到它试图运行x86版本的dnx.那为什么会这样?

[更新]我想知道它为什么会使用nuget.org/api/v2所以我使用扩展管理器重新安装了nuget.它在Extension Manager中显示版本3.3.0.167,但Package Manager的输出窗口仍然显示V2.

我正在运行Windows 7

[更新] project.json是

{
  "version": "1.0.0-*",
  "compilationOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-update1",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-update1",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-update1",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-update1",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-update1",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-update1",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-update1",
    "Microsoft.Extensions.Configuration.FileProviderExtensions" : "1.0.0-rc1-update1",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-update1",
    "Microsoft.Extensions.Logging": "1.0.0-rc1-update1",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-update1",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-update1",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-update1"
  },

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
  },

  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },

  "exclude": [
    "wwwroot",
    "node_modules"
  ],
  "publishExclude": [
    "**.user",
    "**.vspscc"
  ],
  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
  }
}

这是我的NuGet.Config文件

    

  
    
    
  
  
    
    
  
  
    
  

这是我的包源

SBD只是我们在内部开发的一些.我不认为它会影响事情.

在此输入图像描述



1> Oleg..:

您似乎已将dnx(Microsoft .NET执行环境)的版本,dnvm(.NET版本管理器)的版本与程序集的版本号混合在一起.

ASP.NET具有模块化结构.这有利有弊.首先,您可以使用以下命令检查当前的dnvm(.NET版本管理器):

dnvm version

您可以使用

dnvm update-self

将其更新到最新版本.

以同样的方式使用

dnvm list

查看配置文件中安装的所有dnx(Microsoft .NET执行环境).%USERPROFILE%\.dnx\runtimes.每个安装的dnx版本都有一个文件夹.通过使用dnvm use 1.0.0-rc1-update1 -r clr arch x64 -p您更改PATH.您可以看到默认使用的当前版本dnx

dnx --version

它使用%USERPROFILE%\.dnx\runtimes您在PATH中包含的子目录中的dnx.exe dnvm use ....

如果您使用Visual Studio项目,那么您通常创建global.json包含

{
  "projects": [
    "src"
  ],
  "sdk": {
    "version": "1.0.0-rc1-update1"
  }
}

这样的设置通知dnx的版本,该版本应该在构建解决方案/项目期间使用.

以上所有步骤当前发布的许多现有包的版本无关.您可以访问https://www.nuget.org/packages/页面并搜索包的名称.如果您在NuGet配置中使用https://www.nuget.org/api/v2/或https://api.nuget.org/v3/index.json,则会找到相同的包.您可以查看http://myget.org/gallery/aspnetmaster以查看"主"版本(稳定版本)的当前版本的ASP.NET 5程序集,您可以查看http://myget.org/gallery/aspnetvnext看到最新的(来自GitHub dev的不稳定).你可以在https://www.myget.org/gallery/下找到很多其他的feed ,但在我看来只有https://api.nuget.org/v3/index.json和https://www.myget如果要使用ASP.NET 5的最新稳定版本,则应使用.org/F/aspnetmaster/api/v3/index.json.

你会看到,从最新的稳定版本http://myget.org/gallery/aspnetmaster有名字 "1.0.0-RC1决赛",但仍有大量的组件,它有另一个版本的*-rc1-final.同样地,来自http://myget.org/gallery/aspnetvnext的不稳定构建今天的名称为 "v1.0.0-rc2-16357",但是有很多程序集,其中有另一个版本*-rc2-16357.

换句话说,您不应该只更改所有依赖项的名称以使用版本"*-rc1-update1".您可以在上下文菜单中打开"管理NuGet包...",选中"包含预发布"并选择"更新"选项卡,以查看是否发布了包含在"依赖关系"中的新包package.json.只有当您找到一些新软件包然后您才能更新它,但是-rc1-update1对所有软件包的使用将产生错误.

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有