ASP.NET 5 Не удается установить пакет NuGet для ASP.NET 5

У меня есть пакет NuGet для ASP.NET 5 под названием Boilerplate.Web.Mvc6 . Я не могу ссылаться на пакет NuGet на моем веб-сайте ASP.NET 5. Вот мой файл project.json, ссылающийся на "Boilerplate.Web.Mvc6": "1.0.11".

{
  // Omitted

  "dependencies": {
    "Microsoft.AspNet.Mvc": "6.0.0-beta6",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-beta6",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta6",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta6",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta6",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.EnvironmentVariables": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta6",
    "Microsoft.Framework.Logging": "1.0.0-beta6",
    "Microsoft.Framework.Logging.Console": "1.0.0-beta6",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta6",
    "Newtonsoft.Json": "7.0.1",
    "System.Runtime": "4.0.20-beta-23109",
    "Boilerplate.Web.Mvc6": "1.0.11"
  },

  // Omitted
}

Когда я добавляю пакет выше, ссылки в проекте показывают ошибку, и я получаю следующее, напечатанное в окне вывода:

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\Rehan Saeed\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta7-12364\bin\dnx.exe "C:\Users\Rehan Saeed\.dnx\runtimes\dnx-clr-win-x86.1.0.0-beta7-12364\bin\lib\Microsoft.Dnx.Tooling\Microsoft.Dnx.Tooling.dll" restore "C:\Temp\WebApplication2\WebApplication2" -f "C:\Program Files (x86)\Microsoft Web Tools\DNU"
Microsoft .NET Development Utility CLR-x86-1.0.0-beta7-12364
Restoring packages for C:\Temp\WebApplication2\WebApplication2\project.json
  CACHE https://api.nuget.org/v3/index.json
  CACHE http://MyGet.org/aspnetmaster/
  CACHE https://az320820.vo.msecnd.net/v3-flatcontainer/boilerplate.web.mvc6/index.json
  GET http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6'
Warning: FindPackagesById: Boilerplate.Web.Mvc6
  Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response.
  GET http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6'
Warning: FindPackagesById: Boilerplate.Web.Mvc6
  Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response.
  GET http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6'
Error: FindPackagesById: Boilerplate.Web.Mvc6
  Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response.
----------
System.IO.InvalidDataException: Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response. ---> System.Xml.XmlException: 'doctype' is an unexpected token. The expected token is 'DOCTYPE'. Line 2, position 3.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.Throw(String res, String[] args)
   at System.Xml.XmlTextReaderImpl.ThrowUnexpectedToken(String expectedToken1, String expectedToken2)
   at System.Xml.XmlTextReaderImpl.ParseDoctypeDecl()
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at System.Xml.Linq.XDocument.Load(XmlReader reader, LoadOptions options)
   at System.Xml.Linq.XDocument.Load(Stream stream, LoadOptions options)
   at Microsoft.Dnx.Tooling.Restore.NuGet.NuGetv2Feed.EnsureValidFindPackagesResponse(Stream stream, String uri)
   --- End of inner exception stack trace ---
   at Microsoft.Dnx.Tooling.Restore.NuGet.NuGetv2Feed.EnsureValidFindPackagesResponse(Stream stream, String uri)
   at Microsoft.Dnx.Tooling.Restore.NuGet.NuGetv2Feed.<>c__DisplayClass25_0.<FindPackagesByIdAsyncCore>b__0(Stream stream)
   at Microsoft.Dnx.Tooling.Restore.NuGet.HttpSource.<GetAsync>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Microsoft.Dnx.Tooling.Restore.NuGet.NuGetv2Feed.<FindPackagesByIdAsyncCore>d__25.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Dnx.Tooling.RemoteWalkProvider.<FindLibrary>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Dnx.Tooling.RestoreOperations.<FindLibrary>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Microsoft.Dnx.Tooling.RestoreOperations.<FindLibraryByVersion>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Microsoft.Dnx.Tooling.RestoreOperations.<FindLibraryMatch>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Dnx.Tooling.RestoreOperations.<FindLibraryEntry>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Dnx.Tooling.RestoreOperations.<CreateGraphNode>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Microsoft.Dnx.Tooling.RestoreOperations.<CreateGraphNode>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Dnx.Tooling.RestoreCommand.<CreateGraphNode>d__71.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Microsoft.Dnx.Tooling.RestoreCommand.<RestoreForProject>d__70.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Dnx.Tooling.RestoreCommand.<>c__DisplayClass69_0.<<Execute>b__1>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.Dnx.Tooling.RestoreCommand.<Execute>d__69.MoveNext()
----------
Restore failed
Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response.
NuGet Config files used:
    C:\Users\Rehan Saeed\AppData\Roaming\NuGet\NuGet.Config
Feeds used:
    https://az320820.vo.msecnd.net/v3-flatcontainer/
    http://MyGet.org/aspnetmaster/
    C:\Program Files (x86)\Microsoft Web Tools\DNU

Что не так?

ОБНОВЛЕНИЕ

Это мои каналы пакета NuGet:

  1. nuget.org - https://api.nuget.org/v3/index.json
  2. Мой Get - http://MyGet.org/aspnetmaster
  3. Microsoft .NET - https://www.nuget.org/api/v2/curated-feeds/microsoftdotnet/

ОБНОВЛЕНИЕ 2

Я запустил dnu restore --ignore-failed-sources и получил следующий результат, в котором он все еще не может найти мой пакет NuGet. Странно то, что я могу ссылаться на 1.0.10 того же пакета из моего проекта ASP.NET 5, но не из библиотеки классов ASP.NET 5.

Restoring packages for C:\Temp\WebApplication2\WebApplication2\project.json
  GET https://api.nuget.org/v3/index.json
  OK https://api.nuget.org/v3/index.json 130ms
  GET http://MyGet.org/aspnetmaster/
  OK http://MyGet.org/aspnetmaster/ 142ms
  GET https://az320820.vo.msecnd.net/v3-flatcontainer/boilerplate.web.mvc6/index.json
  GET http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6'
Warning: FindPackagesById: Boilerplate.Web.Mvc6
  Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response.
  GET http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6'
  OK https://az320820.vo.msecnd.net/v3-flatcontainer/boilerplate.web.mvc6/index.json 103ms
Warning: FindPackagesById: Boilerplate.Web.Mvc6
  Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response.
  GET http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6'
Warning: FindPackagesById: Boilerplate.Web.Mvc6
  Response from http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' is not a valid NuGet v2 service response.
Unable to locate Boilerplate.Web.Mvc6 >= 1.0.11
Writing lock file C:\Temp\WebApplication2\WebApplication2\project.lock.json
Restore complete, 1210ms elapsed

Errors in C:\Temp\WebApplication2\WebApplication2\project.json
    Unable to locate Boilerplate.Web.Mvc6 >= 1.0.11

NuGet Config files used:
    C:\Users\Rehan Saeed\AppData\Roaming\NuGet\NuGet.Config

Feeds used:
    https://az320820.vo.msecnd.net/v3-flatcontainer/
    http://MyGet.org/aspnetmaster/

person Muhammad Rehan Saeed    schedule 16.08.2015    source источник
comment
Можете ли вы публиковать все используемые вами каналы nuget? Вы можете найти это в меню Инструменты- ›Параметры-› Диспетчер пакетов.   -  person    schedule 16.08.2015
comment
Я разговариваю по телефону, поэтому не могу проверить, но попробуйте отменить выбор всех каналов, кроме канала с шаблонным пакетом, а затем запустите Update-Package -reinstall Boilerplate.Web.Mvc6 в консоли пакета.   -  person    schedule 16.08.2015
comment
Неверный URL-адрес канала. Это должно быть myget.org/F/aspnetmaster/api/v2.   -  person davidfowl    schedule 17.08.2015


Ответы (2)


Это может быть ошибка myget. Я все равно обнаружил ошибку на dnu (см. Ее здесь), а также отправил ping на людей myget.

Проблема в том, что http://MyGet.org/aspnetmaster/FindPackagesById()?id='Boilerplate.Web.Mvc6' возвращает 200 OK и HTML, если пакет не найден и мы пытаемся разобрать его как XML.

Вы можете передать --ignore-failed-sources в dnu restore, чтобы разблокировать себя.

person Victor Hurdugaci    schedule 17.08.2015
comment
Похоже, это не сработало. См. Мой обновленный вопрос. Он должен идти в NuGet, а не в MyGet для моего пакета, но он не может получить его оттуда. - person Muhammad Rehan Saeed; 17.08.2015
comment
Он просматривает все каналы, и, поскольку один из них возвращает что-то неверное, не выполняется. Канал должен включать / F: myget.org/F/aspnetmaster/api/v2. Точно так же, как здесь: github.com/aspnet/MusicStore/blob/ master / NuGet.Config # L6 - person Victor Hurdugaci; 17.08.2015
comment
Даже с опцией --ignore-failed-sources? Сегодня вечером попробую добавить канал v2. Могу ли я добавить это в VS Options или мне нужен файл NuGet.config? - person Muhammad Rehan Saeed; 17.08.2015
comment
Работает в VS. Кстати, люди из MyGet устранили проблему, чтобы вы больше не видели сбой. Но, пожалуйста, обновите фид, указав правильный URL - person Victor Hurdugaci; 17.08.2015
comment
Я обновил VS - ›URL-адрес фида опций. Я больше не получаю исключения, но все равно получаю Unable to locate Boilerplate.Web.Mvc6 >= 1.0.11. Это работает для вас? - person Muhammad Rehan Saeed; 17.08.2015

Я попытался удалить файл project.lock.json и повторно открыть Visual Studio, что обычно решает эту проблему для меня.

С тех пор я попытался установить версию 1.0.11 пакета, и это волшебным образом сработало. Поскольку предыдущие версии работали, и я не вносил изменений в проект или свою установку, я подозреваю, что это проблема с подключением пакета NuGet. NuGet потребовалось три дня для регистрации новой версии пакета.

person Muhammad Rehan Saeed    schedule 20.08.2015
comment
Удаление project.lock.json решило проблему здесь. - person Tony; 22.12.2015