Зависимость>= 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

Это должно решить проблему.

Другие вопросы по тегам