'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.