Столкнувшись с проблемой NuGet «'5.0.0 + 42a8779499c1d1ed2488c2e6b9e2ee6ff6107766' не является допустимой строкой версии». при установке пакетов - PullRequest
1 голос
/ 25 мая 2020

Я создал платформу для тестирования веб-приложений в C# (Консольное приложение). Все пакеты управляются менеджером пакетов Nuget. Когда я пытаюсь установить / удалить пакеты через nuget, я сталкиваюсь с исключением (вставлено в конце).

Инструменты / Конфигурации

  1. Visual studio - Сообщество 2013
  2. . NET Framework - 4.5.2 Selenium
  3. webdriver - 3.141.0
  4. MSBuild.NUnit version = "1.0.2 "
  5. NUnit version =" 3.12.0 "
  6. NUnit3TestAdapter version =" 3.15.1 "NU
  7. NUnitTestAdapter version =" 2.2.0 "

Дайте мне знать, если кому-нибудь понадобятся другие подробности. Я просмотрел темы, связанные с Nuget, но не нашел ни одной полезной темы, которая дает какую-либо идею или решение.

Дайте мне знать, если вам нужна другая информация || Предложите несколько идей / решений Исключение

PM> '5.0.0+42a8779499c1d1ed2488c2e6b9e2ee6ff6107766' is not a valid version string.
Parameter name: version

At line:1 char:50
+ '5.0.0+42a8779499c1d1ed2488c2e6b9e2ee6ff6107766' is not a valid versi ...
+                                                  ~~
Unexpected token 'is' in expression or statement.
PM> 
PM> Install-Package NuGet.Frameworks -Version 4.7.0
Install-Package : '5.0.0+42a8779499c1d1ed2488c2e6b9e2ee6ff6107766' is not a valid version string.
Parameter name: version
At line:1 char:1
+ Install-Package NuGet.Frameworks -Version 4.7.0
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Install-Package], ArgumentException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackag 
   eCommand

PM> uninstall-package Microsoft.TestPlatform.TranslationLayer -version 16.6.1
uninstall-package : '5.0.0+42a8779499c1d1ed2488c2e6b9e2ee6ff6107766' is not a valid version string.
Parameter name: version
At line:1 char:1
+ uninstall-package Microsoft.TestPlatform.TranslationLayer -version 16 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Uninstall-Package], ArgumentException
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.UninstallPack 
   ageCommand

PM> nuget update -self
nuget : The term 'nuget' is not recognized as the name of a cmdlet, function, script file, or 
operable program. Check the spelling of the name, or if a path was included, verify that the path 
is correct and try again.
At line:1 char:1
+ nuget update -self
+ ~~~~~
    + CategoryInfo          : ObjectNotFound: (nuget:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Скриншоты

NugetPackageManagerErrorScreenshot

Установленный Nuget

Ответы [ 2 ]

0 голосов
/ 26 мая 2020

Каким-то образом мне удалось заставить пакет установки / удаления работать через Консоль диспетчера пакетов .

Я пробовал эти шаги ранее, но не уверен, почему тогда это не сработало.

  1. Неустановленный nuget: Инструменты> Расширения и обновления> Установлен> Nuget
  2. Повторно установленный nuget: Инструменты> Расширения и обновления> Онлайн [Галерея Visual Studio]> Nuget> Установить
  3. Изменены настройки диспетчера пакетов: Инструменты> Диспетчер пакетов Nuget> Настройки диспетчера пакетов> Диспетчер пакетов Nuget> Источники пакетов> Проверено только "nuget.org", все остальное не отмечено> Нажмите "ОК".
  4. Перезагрузите VS 2013 (перезагрузите систему, если хотите.)

Install/Uninstall via package manager console screenshot

Редактировать 1 : Также можно видеть через пользовательский интерфейс. Able to see via UI as well

0 голосов
/ 25 мая 2020

Пакет, который вы пытаетесь восстановить (или в данном случае одна из его зависимостей ), использует управление версиями SemVer 2.0.0, что обозначено здесь +, за которым следуют метаданные сборки в номер версии.

К сожалению, менеджер пакетов, включенный в Visual Studio 2013, не поддерживает SemVer 2.0.0. Он изначально поддерживается только VS2017 15.3+ (и VS2015 со специальным расширением). Пакеты, использующие Semanti c Управление версиями 2.0.0, будут скрыты от старых клиентов, таких как VS 2013. *

Из документации Nuget Package Versioning , в разделе Semantic Versioning 2.0.0 (выделено жирным шрифтом):

Если вы загружаете пакет SemVer v2.0.0-specifici c на nuget.org, пакет невидим для старых клиентов и доступен только для следующих клиентов NuGet:

  • NuGet 4.3.0 +
  • Visual Studio 2017 версии 15.3 +
  • Visual Studio 2015 с NuGet VSIX v3.6.0
  • do tnet
    • dotnetcore.exe (. NET SDK 2.0.0+)

В качестве обходного пути вы можете загрузить более новую версию инструмента командной строки nuget, а затем вручную выполнить nuget restore для своего проекта из командной строки.

Обратите внимание, что все больше и больше пакетов переходят на Semanti c Версия 2.0.0. Вы можете начать сталкиваться с этой проблемой все чаще, в зависимости от используемых вами пакетов. Я бы посоветовал обновить вашу версию Visual Studio, если это вообще возможно (VS Community - бесплатно ).

* Более поздние инструменты (например, dotnet push и nuget push) выдают несколько раздражающее предупреждающее сообщение, которое предупреждает автора о том, что их пакет использует SemVer 2.0.0 и будет непригоден для использования более ранними версиями. клиентов. В данном случае авторы пакета либо не обращают внимания на этот факт, либо определили, что преимущества схемы управления версиями перевешивают потенциальную потерю потребителей пакета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...