【发布时间】:2016-01-01 03:48:20
【问题描述】:
我想将我的 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 显示中已编辑的依赖项上
我一定是少了一步。 如何升级我的项目以使用框架的活动版本?
[更新] 当我从模板创建一个新的 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
从这里我看到它正在尝试运行 dnx 的 x86 版本。为什么会这样?
[更新] 我想知道为什么它会使用 nuget.org/api/v2 所以我使用扩展管理器重新安装了 nuget。它显示版本 扩展管理器中的 3.3.0.167,但是包管理器的输出窗口仍然提到 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 文件
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageRestore>
<add key="enabled" value="True" />
<add key="automatic" value="True" />
</packageRestore>
<packageSources>
<add key="SBD" value="E:\EShared\NuGet" />
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
</packageSources>
<activePackageSource>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
</activePackageSource>
</configuration>
这是我的包源
SBD 只是我们内部开发的几个。我不认为它应该影响事情。
【问题讨论】:
-
我也试过重启。
-
这些 asp.net 程序集还没有发布到 Nuget,rc1-final 是最后一个可用版本。这应该是行不通的。
-
@kirsteng:您是否只是手动修改了所有依赖项的版本号?每个 dll 都可以在 NuGet 上单独开发和发布。一些 dll 仍然具有名称 -bata8,另一个具有 -rc1-final 并且只有一些从那里更新了 Update1 并且在版本号中有 -rc1-update1。您能否发布
project.json(不是图片)或发布可以使用的测试项目的链接?顺便说一句,对于 ASP.NET 5 的不同状态,有 单独的 NuGet 存储库。我建议您阅读 the answer。 -
感谢@Oleg 我在上面发布了 project.json。将阅读您发送的链接。
-
@kirsteng:这不重要。您可以在 Visual Studio 2015+ 中使用
https://api.nuget.org/v3/index.json以使用 NuGet V3 源,并在 Visual Studio 2012+ 中使用https://www.nuget.org/api/v2/以使用 NuGet V2 源。您将访问 相同的 NuGet 包,这一点很重要,您可以在https://www.nuget.org/packages/上找到这些包。我认为你混合了一些不同的东西。我会写答案来澄清这一点。
标签: visual-studio-2015 nuget dnvm