'nuget' не распознается, но другие команды nuget работают

Я пытаюсь создать пакет nuget, используя http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#From_a_convention_based_working_directory как ссылка. Моя консоль управления пакетами в Visual Studio не позволяет мне использовать команду "nuget". Я могу "Get-help 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" не распознается как имя командлета, функции, файла script или исполняемой программы. Проверьте правильность написания имени или если путь был включен, проверьте правильность пути и попробуйте ag айн.

В строке: 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 отсутствует, но я не могу определить, как настроить пути, используемые консолью диспетчера пакетов, и я не уверен, где действительно хранится nget.

Обновлено --- попытался загрузить инструмент командной строки, как предлагается ниже. Это ни к чему не приводит. Я попытался удалить, и теперь у меня есть элемент в vs2010 extions для nuget, у которого нет кнопки установки или unistall. Это заставляет меня думать, что это связано с расширениями, установленными в 2010 и 2012 годах, которые участвуют в моей маленькой драме. Если кто-то знает, как наносить удаляемое расширение, пожалуйста, сообщите также, но я попробую еще один вопрос.

Ответ 1

Вы также можете попробовать установить путь системной переменной к местоположению вашего nuget exe и перезапустить VS.

  • Откройте переменную system PATH и добавьте местоположение вашего nuget.exe(для меня это: C:\Program Files (x86)\NuGet\Visual Studio 2013)
  • Перезапустить Visual Studio

Я бы разместил это как комментарий к вашему answer @done_merson, но у меня не было необходимой репутации, чтобы сделать это.

Ответ 2

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

Могут быть решены следующие шаги:


Обновление

NuGet можно легко установить в свой проект, используя следующую команду:

Установочный пакет NuGet.CommandLine

Ответ 3

Есть намного лучшие способы сделать это.

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

    cinst Nuget.CommandLine

в командной строке. Это установит пути nuget и настройки среды, поэтому nuget всегда доступен.

Ответ 4

В [Package Manager Console] попробуйте следующее

Install-Package NuGet.CommandLine

Ответ 5

Инструмент командной строки nuget не поставляется с файлом vsix, он является отдельной загрузкой

https://github.com/nuget/home

Ответ 6

В Visual Studio:

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

В ПМ:

Install-Package NuGet.CommandLine

Закройте Visual Studio и откройте его снова.

Ответ 7

  • Щелкните правой кнопкой мыши свой проект в обозревателе решений.
  • Выберите Управление пакетами NuGet для решения.
  • Найдите NuGet.CommandLine от Microsoft и установите его. Search Nuget.CommandLine
  • По завершении установки вы найдете папку с именем packages в ваш проект. Перейдите в обозреватель решений и найдите его. packages
  • Внутри пакетов ищите папку с именем NuGet.CommandLine.3.5.0, здесь 3.5.0 - это просто имя версии, имя вашей папки изменится соответственно. nuGet COmmand Line
  • Внутри NuGet.CommandLine.3.5.0 найдите папку с именем tools. tools
  • Внутри инструментов вы получите свой nuget.exe nuget.exe

Ответ 8

Я обошел это, найдя nuget.exe и перейдя на простой путь (c:\nuget\nuget), а затем вызвав nuget с этим путем. Это, похоже, решает проблему. c:\nuget\nuget на консоли диспетчера пакетов работает как ожидалось. Я попытался найти путь, который консоль использовала и меняла путь к среде, но никогда не могла заставить его работать таким образом.

Ответ 9

Получить nuget.exe из https://www.nuget.org/downloads. Скопируйте его в локальную папку и добавьте эту папку в переменную среды PATH.

Это сделает Nuget доступным по всему миру из любого проекта.