Путаница NuGet - можете ли вы выиграть игру - PullRequest
0 голосов
/ 21 апреля 2020

Env: Powershell 7 на Macos

Я пытаюсь установить grp c пакетов:

install-Package Grpc.Net.Client    

Он зависает "навсегда", поэтому я пытаюсь для установки

Install-Package Google.Protobuf

Затем появляется:

Install-Package: Unable to find dependent package(s) (System.Reflection)

Хорошо, затем я пытаюсь установить:

Install-Package System.Reflection                                                                                              

Затем появляется:

WARNING: 'System.Reflection' matched package 'System.Reflection/4.3.0' from provider: 'NuGet', source 'System.Reflection'.
WARNING: 'System.Reflection' matched package 'System.Reflection/4.1.0' from provider: 'NuGet', source 'nuget.org'.
Install-Package: Unable to install, multiple packages matched 'System.Reflection'. Please specify a single -Source.

Тогда я попытаюсь:

 Install-Package System.Reflection -Source nuget.org

Затем получится:

The package(s) come(s) from a package source that is not marked as trusted.
Are you sure you want to install software from 'nuget.org'?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "N"): 

Затем я попытаюсь:

Register-PackageSource -Name System.Reflection -Provider Nuget

Затем Я получаю:

Register-PackageSource: Package Source 'System.Reflection' exists.

Тогда я пытаюсь ....:

Well, I really dont know how this packagemanager can help me?

1 Ответ

1 голос
/ 21 апреля 2020

tl; dr: использовать dotnet add package Grpc.Net.Client или любую другую функциональность NuGet, существующую в Visual Studio для Ma c, если вы ее используете.

более длинная версия: Документация NuGet для Install-Package Командлет powershell говорит:

В этом topi c описывается команда в консоли диспетчера пакетов в Visual Studio на Windows. Для команды generi c PowerShell Install-Package см. Справочник PowerShell PackageManagement.

Документы Powershell в их Install-Package командлетах не определены или не имеют ссылки Однако к тому, что они считают «программным пакетом», я понимаю, что пакеты PowerShell добавляют новые команды Powershell в Powershell.

Таким образом, Install-Package Powershell не предназначен для установки пакетов NuGet в проекты NET. , но модули powershell можно распространять как пакеты NuGet. NuGet Install-Package доступен только в Visual Studio для Windows. Это действительно неудачное имя cla sh, которое не может быть исправлено без разрушения большого количества людей, так что, честно говоря, я не могу представить, чтобы оно когда-либо было изменено.

Образец GRP C, с которым вы связались возможно, недостаточно ясно, что команды powershell работают только в Visual Studio для Windows. Единственной ссылкой на powershell, которую я мог видеть, был небольшой заголовок над блоком кода, в котором говорилось, что содержимое блока кода является powershell, но в инструкциях по блоку кода явно сказано, чтобы выбрать меню, которые, как мне кажется, существуют только в Visual Studio для Windows.

На многих страницах документации Microsoft внизу есть раздел комментариев, но, к сожалению, в приведенном вами примере нет, поэтому я создам от вашего имени проблему с просьбой улучшить ее сопровождающими.

Как уже упоминалось в предложении tl; dr вверху, если ваш проект является проектом в стиле SDK, вы можете использовать do tnet CLI для добавления пакета в ваш проект: dotnet add package <package_id>.

...