'nuget' не розпізнається, але інші цільові команди працюють


112

Я намагаюся створити натурний пакет, використовуючи http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#From_a_convention_based_working_directory як довідник. Моя консоль керування пакетами у Visual Studio не дозволяє мені використовувати команду 'nuget'. Я можу "отримати допомогу nuguet", і вона відобразить:

Наступні командлети NuGet включені.

    Cmdlet                  Description
    ------------------      ----------------------------------------------
    Get-Package             Gets the set of packages available from the package source.

    Install-Package         Installs a package and its dependencies into the project.

    Uninstall-Package       Uninstalls a package. If other packages depend on this package, 
                            the command will fail unless the –Force option is specified.

    Update-Package          Updates a package and its dependencies to a newer version.

    Add-BindingRedirect     Examines all assemblies within the output path for a project
                            and adds binding redirects to the application (or web) 
                            configuration file where necessary.

    Get-Project             Returns a reference to the DTE (Development Tools Environment) 
                            for the specified project. If none is specifed, returns the 
                            default project selected in the Package Manager Console.

    Open-PackagePage        Open the browser pointing to ProjectUrl, LicenseUrl or 
                            ReportAbuseUrl of the specified package.

    Register-TabExpansion   Registers a tab expansion for the parameters of a command.
  • Однак, коли я починаю команди з nuget, це дає:

Термін "nuget" не розпізнається як ім'я командлету, функції, файлу сценарію або керованої програми. Перевірте написання імені або якщо шлях включений, переконайтесь, що шлях правильний, і спробуйте ain ain.

У рядку: 1 char: 6 + nuget <<<< + CategoryInfo: ObjectNotFound: (nuget: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Я спробував такі рішення:

1> закриття всіх елементів та перезапуск

2> видалення та перевстановлення

3> створення файлу профілю PowerShell (цього раніше не існувало, і це фактично все порушило)

Проблема почала з’являтися після оновлення пробної версії Visual Studio 2012 Ultimate до зареєстрованої. Спочатку у мене був встановлений VS 12 Pro. Я не знаю, чи це насправді пов'язане з цим, але я помітив, що в інших, які мали подібні проблеми, встановлено проти 10 та 12.

Моє запитання: "хтось знає, що ще спробувати?" Моя теорія полягає в тому, що шлях до команди nuget відсутній, але я не можу знайти, як налаштувати контури консолі менеджера пакунків, і я не впевнений, де насправді зберігається нуг командлета.

Оновлено --- спробували завантажити інструмент командного рядка, як запропоновано нижче. Це призводить до того, що знову нічого не працює. Я спробував видалити, і тепер у мене є елемент у vs2010 розширення для нута, у якому не включена кнопка встановлення або видалення. Це змушує мене вважати, що це стосується розширень, встановлених через 2010 та 2012 роки, які є частиною моєї маленької драми. Якщо хтось також знає, як зняти розширення, яке не можна встановити, будь ласка, порадьте, але я спробую інше питання щодо цього.


1
Чи увімкнено UAC і ви намагалися запустити візуальну студію як адміністратора, щоб скасувати все розширення?
Бетті

Правильна відповідь Install-Package NuGet.CommandLine.
live-love

@ live-love OP намагається створити пакет, а не встановлювати пакет
Нік Тернер

Відповіді:


20

Ви також можете спробувати встановити шлях до змінної системи до місця розташування вашого nue exe та перезапустити VS.

  1. Відкрийте системну PATHзмінну і додати розташування вашого nuget.exe (для мене це: C:\Program Files (x86)\NuGet\Visual Studio 2013)
  2. Перезапустіть Visual Studio

Я б опублікував це як коментар до вашої відповіді @done_merson, але я не мав необхідної репутації для цього.


151

Nuget.exe розміщено в .nuget папці вашого проекту. Він не може бути виконаний безпосередньо в консолі диспетчера пакунків, але виконується командами Powershell, оскільки ці команди будують для себе спеціальний шлях.

Мої кроки для вирішення:


Оновлення

NuGet можна легко встановити у вашому проекті за допомогою наступної команди:

Встановити-пакет NuGet.CommandLine


Що слід ввести як ім'я змінної?
Євген Найда

1
Мені довелося розмістити nuget.exe на тому самому диску, де я виконував команду nuget (і відповідно відкоригувати значення змінної середовища PATH)
mediafreakch

Ви можете побачити змінну середовища PATH, перейшовши на Панель управління> Система> Додаткові параметри системи, потім у вікні Властивості системи натисніть вкладку Додатково і там ви побачите кнопку "Змінні середовища ...". У групі Системні змінні перейдіть до пошуку змінної середовища PATH. Потім додайте ще один шлях, виділяючи його крапкою з комою (;).
Джерамел Реско

1
Повинна бути якась помилка .... Я отримую, Package 'NuGet.CommandLine.3.3.0' already exists in project 'TimeLoop'але коли я пишу NuGet, я просто отримую помилку, що команда не існує.
Петро

23
Install-Package NuGet.CommandLineце жахливо, тому що 1. Він додає NuGet.CommandLineзалежність до мого проекту (ew!), і 2. Це потрібно робити окремо у кожному проекті. npmє опція "глобальної установки" - чи не має NuGet щось подібне !?
BlueRaja - Danny Pflughoeft

60

Є набагато приємніші способи зробити це.

  1. Встановіть у свій проект Nuget.Build, який потрібно запакувати. Може знадобитися закрити і знову відкрити рішення після встановлення.
  2. Встановити nuget через шоколадний - набагато приємніше. Встановіть шоколадний: https://chocolatey.org/ , після чого запустіть

    cinst Nuget.CommandLine

у вашому командному рядку. Це дозволить встановити шляхи довкілля та налаштування середовища, тому nuget завжди доступний.


Якщо тільки ви не використовуєте npm для встановлення шоколаду
Олег Михайлик

Після того, як мені не пощастило з іншими відповідями, це спрацювало прямо для мене. Chocolatey врятував мене, щоб зробити конфігурацію PATH вручну
Сем,

47

У [Package Manager Console]спробуйте нижче

Install-Package NuGet.CommandLine

Після "Install-Package NuGet.CommandLine", nuget.exe може бути виконаний у PM.
BinSys

13
Виконати: Термін "Виконати" не розпізнається як ім'я командлету, функції, файлу сценарію або керованої програми. Перевірте написання імені або якщо шлях включений, перевірте, чи правильний шлях, і спробуйте ще раз. VS2015
пограбувати

У мене така ж проблема, як у @rob.
Грант Бірхмайер

3
Не вводьте весь рядок "Виконати ...". Просто введіть:Install-Package NuGet.CommandLine
Serj Sagan

Чому о, чому МС робить все неправильно ?! Якби вони керували атомними електростанціями, ми всі були б мертві! Чому ці критичні команди недоступні і їх потрібно окремо завантажити? Очевидно, це не економить нам місце на диску, оскільки Microsoft з легкістю встановлюватиме своє програмне забезпечення, коли є можливість.
ATL_DEV


12
  • Клацніть правою кнопкою миші ваш проект у провіднику рішень .
  • Виберіть Управління пакетами NuGet для вирішення .
  • Шукайте NuGet.CommandLine від Microsoft та встановіть його. Пошук Nuget.CommandLine
  • Після завершення встановлення ви знайдете папку з іменами пакети у вашому проекті. Перейдіть до розвідника рішень і шукайте його. пакети
  • Всередині пакетів шукайте папку під назвою NuGet.CommandLine.3.5.0 , тут 3.5.0 - це лише назва версії, яке назву вашої папки буде відповідно змінено. nuGet COmmand Line
  • Всередині NuGet.CommandLine.3.5.0 шукайте папку з назвою інструментів . інструменти
  • Всередині інструментів ви отримаєте ваш nuget.exe nuget.exe

Стався виняток. (Виняток з HRESULT: 0x80020009 (DISP_E_EXCEPTION))
AgentFire

11

У Visual Studio:

Tools -> Nuget Package Manager -> Package Manager Console.

В ПМ:

Install-Package NuGet.CommandLine

Закрийте Visual Studio і відкрийте її знову.


7

Я обійшов це, знайшовши nuget.exe і перемістившись до простого набору шляху (c: \ nuget \ nuget), а потім викликав нугета цим шляхом. Це, здається, вирішує проблему. c: \ nuget \ nuget на консолі диспетчера пакунків працює як очікується. Я намагався знайти шлях, який використовує консоль і змінюючи шлях оточення, але так і не зміг змусити його працювати таким чином.


1
Це має бути прийнятою відповіддю. Це справді не складніше, ніж це!
Флоріан Зима

Оновлення листопада 2019 року - nuget.exe - це .exe, необхідний для інструментів командного рядка Nuget (через консоль Powershell або cmd, або консоль диспетчера пакунків Nuget у VS) - дивіться тут docs.microsoft.com/en-us/nuget/ посилання /… . Якщо у вас його немає, отримайте його тут - nuget.org/downloads
Кріс

4

Завантажити nuget.exeз https://www.nuget.org/downloads. Скопіюйте її у локальну папку та додайте її до PATHзмінної середовища.

Це зробить nuget доступним у всьому світі, з будь-якого проекту.


Це просто так просто. Створіть "c: \ Nuget", потім перейдіть до змінних середовища, подвійний шлях, натисніть кнопку "Створити", поставте "C: \ Nuget" і все закінчено. Зробити все візуальною студією є 2010 рік. Використовуйте Powershell або командний рядок.
Нік Тернер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.