Место установки Install-Package & NuGet Package — где установлено?

> nuget                                                                                                         
nuget : The term 'nuget' is not recognized as the name of a cmdlet, function, script file, or operable program. ...

> find-package -name nuget | Install-package -verbose
VERBOSE: Skipping installed package NuGet 1.3.3.

> nuget                                                                                                         
nuget : The term 'nuget' is not recognized as the name of a cmdlet, function, script file, or operable program. ...

Если он установлен, то где он установлен? Я искал на диске, и никаких других копий nuget.exe не существует, кроме той, которую я установил вручную (но которой, очевидно, нет в $ PATH, поэтому, конечно, это не относится к ней - я переименовал ее, чтобы перепроверить!).


Обновление вопроса

У меня были ожидания от моего опыта работы с Java, и кажется, что я задал неправильный вопрос.

Мой вариант использования ниже. Сначала фон.

  • Я новичок в разработке приложений для MS, хотя имею десятилетний опыт разработки Java.
  • (где я сейчас нахожусь) есть старая версия приложения ASP.Net, которая не будет работать с dotnet cli.
  • Команда здесь имела жестко закодированные (сохраненные) зависимости, а также создала свою систему сборки, чтобы ожидать найти другие зависимости, например, в установке Visual Studio. С моим бэкграундом мне не нравится это ожидание, особенно когда дело доходит до масштабирования.
  • Существующая система сборки использует MSBuild и использует .targets файлов.

Мой вариант использования — запустить сборку с использованием определенных (НЕ ПРЕДВАРИТЕЛЬНО ЗАГРУЖЕННЫХ) зависимостей и на сервере, который не имеет никаких ожиданий в отношении среды сборки, кроме некоторых ключевых инструментов. Visual Studio — это IDE, и я не ожидаю найти это на сервере.

Я создал зависимости в файле packages.config. Я хочу добавить nuget.exe в скрипт сборки (в настоящее время build.bat, но предпочтительнее эквивалент Powershell).

Я знаю, что есть много информации, но с моим недостатком знаний в этой области, связанным с тем фактом, что то, что я хочу сделать, уходит корнями где-то в 2012 год (я предполагаю), я не уверен, что делать .

Учитывая то, что я знаю, я думал, что все, что я хотел сделать, это:

  1. Установите nuget в начале скрипта build.bat / build.ps1
  2. Run nuget to install the defined dependencies
    • I have downloaded nuget manually, run nuget restore and confirmed that it does what I want
  3. Запустите сборку как раньше

Первой попыткой задать этот вопрос был адрес №1 из этого списка. Я думал, что powershell можно использовать для загрузки nuget.exe, а затем скрипт сборки мог вызвать nuget restore.


person HankCa    schedule 13.12.2017    source источник
comment
Ты прав. Спасибо, что прочитали и ответили.   -  person HankCa    schedule 15.12.2017


Ответы (2)


Если он установлен, то где он установлен?

Если вы работаете на компьютере с Windows, пакеты PowerShell обычно устанавливаются в C:\Program Files\WindowsPowerShell\Modules (глобальный) или C:\Users\%USERNAME%\Documents\WindowsPowerShell\Modules (CurrentUser).

nuget.exe специально установлен — да, именно там, где вы его устанавливаете; цитата из справочника NuGet CLI (MSDocs) :

Установка nuget.exe

  1. На Mac и Linux установите Mono 4.4.2 или более позднюю версию.
  2. Посетите nuget.org/downloads и выберите нужную версию NuGet.
  3. Каждая загрузка представляет собой файл nuget.exe напрямую. Попросите браузер сохранить файл в папку по вашему выбору. Файл не является установщиком; запуск из браузера ничего не покажет.
  4. Добавьте папку, в которую вы поместили nuget.exe, в переменную среды PATH, чтобы использовать инструмент CLI из любого места.

Это кажется несколько запутанным, не так ли? Имейте в виду, что существует 3 разных пакета/приложения:

  1. NuGet CLI (как указано)
  2. Пакет NuGet PowerShell / Консоль диспетчера пакетов (что вы ищете ибо я думаю) экспортирует собственный Install-Package
  3. Пакет PowerShell PackageManagement (который также Install-Package командлет)
person Clijsters    schedule 13.12.2017
comment
Спасибо @Clijsters. Думаю, у меня были ожидания, основанные на предыдущем опыте (я из мира Java), и я задал неправильный вопрос. Я обновлю свой вопрос. Мне нужна версия CLI, чтобы наш скрипт сборки мог устанавливать зависимости. - person HankCa; 15.12.2017
comment
Я думаю, что самый простой способ сделать это — установить сценарий, начинающийся с iwr "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe" "$pwd/nuget.exe". Имейте в виду, что на целевых машинах должна быть правильная политика выполнения для запуска сценариев PoSh. - person Clijsters; 15.12.2017
comment
Отлично, я попробую это. - person HankCa; 17.12.2017
comment
Мне пришлось использовать iwr <uri> -o $pwd\nuget.exe (или wget <uri> -o $pwd\nuget.exe, или curl ...). Или используйте -OutFile вместо -o. - person HankCa; 18.12.2017

Перечитывая мой обновленный вопрос, я не думаю, что проблема установить nuget.exe на серверах сборки. Или используйте докер, например. https://blog.alexellis.io/3-steps-to-msbuild-with-docker/.

Как правильно заметил @Clijsters, есть инструкции по загрузке nuget. И это было бы самым разумным поступком. Меня просто немного смутила возможность Power Shell установить его. Но это не nuget.exe.

Среда, в которой я работаю, скорее всего, не поддерживает Docker, поэтому я пока не буду заниматься этим.

person HankCa    schedule 15.12.2017