Зависимость>= 1.0.0-rc1-update1 не может быть разрешена
Я хочу обновить свое веб-приложение на C# до следующей версии 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
Я должен пропустить шаг. Как мне обновить мой проект для использования активной версии фреймворка?
[Обновить] Когда я создаю новое веб-приложение из шаблона, я замечаю, что оно все еще использует 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 с помощью диспетчера расширений. Он показывает версию 3.3.0.167 в Extension 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
<?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 one - это всего лишь несколько, которые мы разработали в домашних условиях. Я не думаю, что это должно влиять на вещи.
2 ответа
Похоже, вы смешали версию dnx (среда выполнения Microsoft .NET), версию dnvm (менеджер версий.NET) с номером версии сборок.
ASP.NET имеет модульную структуру. Это имеет свои преимущества и недостатки. Прежде всего вы можете проверить ваш текущий dnvm (.NET Version Manager) с помощью:
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
вы меняете путь Вы можете увидеть текущие версии dnx, используемые по умолчанию
dnx --version
Он использует dnx.exe из подкаталога %USERPROFILE%\.dnx\runtimes
, который вы включили в PATH dnvm use ...
,
Если вы используете Visual Studio Project, то вы обычно создаете global.json
который содержит
{
"projects": [
"src"
],
"sdk": {
"version": "1.0.0-rc1-update1"
}
}
Такая настройка сообщает версию dnx, которую следует использовать при сборке решения / проекта.
Все вышеперечисленные шаги не имеют отношения к версиям многих существующих пакетов, выпущенных в настоящее время. Вы можете перейти на страницу https://www.nuget.org/packages/ и найти названия пакетов. Такие же пакеты будут найдены, если вы используете https://www.nuget.org/api/v2/ или https://api.nuget.org/v3/index.json в конфигурации NuGet. Вы можете просмотреть http://myget.org/gallery/aspnetmaster чтобы увидеть текущую версию сборок ASP.NET 5 "основных" сборок (стабильная сборка), и вы можете изучить http://myget.org/gallery/aspnetvnext чтобы увидеть последние (нестабильные от GitHub Dev). Можно найти много других каналов в https://www.myget.org/gallery/, но, на мой взгляд, только https://api.nuget.org/v3/index.json и https://www.myget.org/F/aspnetmaster/api/v3/index.json следует использовать, если вы хотите использовать последнюю стабильную версию ASP.NET 5.
Вы увидите, что последний стабильный выпуск с http://myget.org/gallery/aspnetmaster имеет имя "1.0.0-rc1-final", но все еще есть много сборок, которые имеют другую версию, такую как *-rc1-final
, Точно так же нестабильная сборка с http://myget.org/gallery/aspnetvnext имеет сегодня имя "v1.0.0-rc2-16357", но есть много сборок, которые имеют другую версию, такую как *-rc2-16357
,
Другими словами, вы не должны просто изменять имена всех зависимостей, чтобы использовать версию "*-rc1-update1"
, Вы можете открыть "Управление пакетами NuGet..." в контекстном меню, установить флажок "Включить предварительный выпуск" и выбрать вкладку "Обновления", чтобы увидеть, есть ли новый пакет, который вы включили в "зависимости" package.json
, выпущен. Только если вы найдете какой-то новый пакет, вы можете обновить его, но с использованием-rc1-update1
для всех пакетов выдаст ошибку.
Некоторые инструменты выбирают структуру в соответствии с псевдонимами. В командной строке проверьте, есть ли у вас псевдоним "default", назначенный для версии 1.0.0-rc1-update1 clr x64. Если нет, выполните следующую команду.
dnvm alias default 1.0.0-rc1-update1 -a x64 -r clr
Это должно решить проблему.