2014-09-29 5 views
2

Я смог настроить собственный сервер NuGet (как описано here). Папка сервера Packages содержит несколько версий MyPackage, скажем, 1.0.8.0 и 1.0.9.0. Когда я устанавливаю его по умолчанию (без указанной версии), он устанавливается успешно. Но когда я явно делатьNuget не может установить определенную версию

Install-Package MyPackage -Version 1.0.9.0 

пойдет не так со следующим сообщением:

Install-Package: Невозможно найти версию '1.0.9.0' из пакета '' MyPackage. В строке: 1 знак: 16 + установить пакет-< < < < MyPackage -Version 1.0.9.0 + CategoryInfo: NotSpecified: (:) [Install-Package], InvalidOperationException + FullyQualifiedErrorId: NuGetCmdletUnhandledException, NuGet.PowerShell.Commands .InstallPackageCommand

UPDATE: Это сообщение об ошибке при Package Source в Package Manager Console установлен в положение "ALL". Когда я устанавливаю его к моему собственному источнику (где, собственно, пакет, как ожидается, будет найден), появляется другая ошибка:

Install-Package : **There are multiple root elements. Line 42, position 2.** 
At line:1 char:16 
+ install-package <<<< dfct.shell.core.contracts -Version "1.0.8.0" 
+ CategoryInfo   : NotSpecified: (:) [Install-Package], XmlException 
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand 

Несколько элементов корня, строка 42? В каком файле? Почему? Я думаю, что что-то не так на стороне сервера, но не может понять, что это такое.

+0

После возникновения ошибки в консоли диспетчера пакетов попробуйте просмотреть полную трассировку стека для исключения, используя: '$ error [0] .exception.stacktrace'. Это должно указывать на то, где в NuGet возникает проблема. –

ответ

5

Оказалось, что сосуществование как MyPackage.1.0.9.0.nupkg, так и MyPackage.1.0.9.0.symbols.nupkg вызвало сбой NuGet. NuGet использует OData как транспорт, а где-то глубоко в OData, он не может сериализовать/десериализовать два пакета, жалуясь на «несколько корневых узлов». Итак, я просто удалил -symbols из командной строки nuget pack, таким образом отключив генерацию отладочных пакетов, и теперь все работает нормально.

+0

У меня была такая же проблема, однако сообщение об ошибке было другим. Установка пакета завершится с кодом 1. Удаление пакетов символов из одного и того же каталога разрешило проблему! – Adrian

+0

Также убедитесь, что нет дубликатов одной и той же библиотеки с другим именем. В моем случае в папке был свободный файл «Copy of MyPackage.X.X.X.nupkg». – Isaac

Смежные вопросы