'nuget' tidak dikenali tetapi perintah nuget lainnya berfungsi

113

Saya mencoba membuat paket nuget menggunakan http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#From_a_convention_based_working_directory sebagai referensi. Konsol Pengelola Paket saya di Visual Studio tidak mengizinkan saya untuk menggunakan perintah 'nuget'. Saya bisa 'Dapatkan-bantuan nuguet' dan itu menampilkan:

Cmdlet NuGet berikut disertakan.

    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.
  • Namun, setiap kali saya memulai perintah dengan nuget diberikan:

Istilah 'nuget' tidak dikenali sebagai nama cmdlet, fungsi, file skrip, atau program yang dapat dioperasikan. Periksa ejaan nama, atau jika jalur disertakan, verifikasi bahwa jalur tersebut benar dan coba lagi.

Pada baris: 1 karakter: 6 + nuget <<<< + CategoryInfo: ObjectNotFound: (nuget: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Saya telah mencoba solusi berikut:

1> tutup semua item dan mulai ulang

2> menghapus dan menginstal ulang

3> membuat file profil PowerShell (ini tidak ada sebelumnya dan ini benar-benar merusak segalanya)

Masalah mulai muncul setelah saya memutakhirkan versi percobaan Visual Studio 2012 Ultimate saya untuk terdaftar. Saya awalnya menginstal VS 12 Pro. Saya tidak tahu apakah itu benar-benar ada hubungannya dengan itu tetapi saya perhatikan bahwa orang lain yang memiliki masalah serupa telah menginstal vs 10 dan 12.

Pertanyaan saya adalah "apakah ada yang tahu apa lagi yang harus dicoba?" Teori saya adalah bahwa jalur ke perintah nuget hilang tetapi saya tidak dapat menemukan cara mengkonfigurasi jalur yang digunakan konsol manajer paket dan saya tidak yakin di mana nuget cmdlet sebenarnya disimpan.

Diperbarui --- mencoba mengunduh alat baris perintah seperti yang disarankan di bawah ini. Ini menyebabkan tidak ada yang berfungsi lagi. Saya mencoba mencopot pemasangan dan sekarang saya memiliki item dalam perpanjangan vs2010 untuk nuget yang tidak mengaktifkan tombol instal atau unistall. Hal ini membuat saya percaya bahwa itu ada hubungannya dengan ekstensi yang dipasang melalui 2010 dan 2012 yang memiliki bagian dalam drama kecil saya. Jika ada yang juga tahu bagaimana cara nuke ekstensi yang tidak dapat dihapus, mohon saran juga tetapi saya akan mencoba pertanyaan lain untuk itu.

done_merson
sumber
1
Apakah Anda telah mengaktifkan UAC dan sudah mencoba menjalankan visual studio sebagai administrator untuk menghapus ekstensi?
Betty
Install-Package NuGet.CommandLine adalah jawaban yang tepat.
cinta langsung
@ live-love OP mencoba membuat paket, bukan menginstal paket
Nick Turner

Jawaban:

20

Anda juga dapat mencoba mengatur jalur variabel sistem ke lokasi nuget exe Anda dan memulai ulang VS.

  1. Membuka sistem Anda PATHvariabel dan menambahkan lokasi dari nuget.exe Anda (bagi saya ini adalah: C:\Program Files (x86)\NuGet\Visual Studio 2013)
  2. Mulai ulang Visual Studio

Saya akan memposting ini sebagai komentar untuk jawaban Anda @done_merson tetapi saya tidak memiliki reputasi yang diperlukan untuk melakukan itu.

Matt
sumber
151

Nuget.exe ditempatkan di .nuget folder proyek Anda. Ini tidak dapat dijalankan secara langsung di Package Manager Console, tetapi dijalankan oleh perintah Powershell karena perintah ini membangun jalur kustom untuk dirinya sendiri.

Langkah saya untuk menyelesaikannya adalah:


Memperbarui

NuGet dapat dengan mudah dipasang di proyek Anda menggunakan perintah berikut:

Instal-Paket NuGet.CommandLine

Leonel Sanches da Silva
sumber
Apa yang harus dimasukkan sebagai 'Nama variabel'?
Ievgen Naida
1
Saya harus menempatkan nuget.exe pada drive yang sama dengan tempat saya menjalankan perintah nuget (dan menyesuaikan nilai variabel lingkungan PATH yang sesuai)
mediafreakch
Anda dapat melihat variabel lingkungan PATH dengan membuka Control Panel> System> Advanced System Settings kemudian pada jendela System Properties, klik tab Advanced dan di sana Anda akan melihat tombol "Variabel Lingkungan ...". Di bawah grup Variabel sistem cari variabel lingkungan PATH. Kemudian tambahkan jalur lain dengan membatasi dengan titik koma (;).
Jerameel Resco
1
Pasti ada beberapa bug .... Saya mengerti Package 'NuGet.CommandLine.3.3.0' already exists in project 'TimeLoop'tetapi ketika saya menulis NuGet saya hanya mendapatkan kesalahan bahwa perintahnya tidak ada.
Peter
23
Install-Package NuGet.CommandLinemengerikan karena, 1. Ia menambahkan NuGet.CommandLinesebagai ketergantungan pada proyek saya (ew!), dan 2. Ini perlu dilakukan secara terpisah di setiap proyek. npmmemiliki opsi 'instal global' - apakah NuGet tidak memiliki yang serupa !?
BlueRaja - Danny Pflughoeft
60

Ada banyak cara yang lebih baik untuk melakukannya.

  1. Pasang paket Nuget.Build di proyek yang ingin Anda kemas. Mungkin perlu menutup dan membuka kembali solusi setelah menginstal.
  2. Instal nuget melalui chocolatey - jauh lebih bagus. Instal chocolatey: https://chocolatey.org/ , lalu jalankan

    cinst Nuget.CommandLine

di command prompt Anda. Ini akan menginstal nuget dan mengatur jalur lingkungan, jadi nuget selalu tersedia.

fenix2222
sumber
Tidak, kecuali Anda menggunakan npm untuk menginstal chocolatey
Oleg Mihailik
Setelah tidak beruntung dengan jawaban lain, ini langsung bekerja untuk saya. Chocolatey menyelamatkan saya karena harus melakukan konfigurasi PATH secara manual
Sam
47

Di [Package Manager Console]coba di bawah ini

Install-Package NuGet.CommandLine
BinSys
sumber
Setelah "Install-Package NuGet.CommandLine", nuget.exe dapat dijalankan di PM.
BinSys
13
Jalankan: Istilah 'Jalankan' tidak dikenali sebagai nama cmdlet, fungsi, file skrip, atau program yang dapat dioperasikan. Periksa ejaan nama, atau jika sebuah jalur disertakan, verifikasi bahwa jalur tersebut benar dan coba lagi. VS2015
merampok
Saya mendapat masalah yang sama dengan @rob.
Grant Birchmeier
3
Jangan ketik seluruh baris "Jalankan ...". Ketik saja:Install-Package NuGet.CommandLine
Serj Sagan
Mengapa oh mengapa MS melakukan semuanya dengan salah ?! Jika mereka menjalankan pembangkit listrik tenaga nuklir, kita semua akan mati! Mengapa perintah penting ini tidak tersedia dan harus diunduh secara terpisah? Ini jelas tidak untuk menghemat ruang drive kita karena Microsoft akan dengan mudah menginstal bloatware mereka setiap kali mereka memiliki kesempatan.
ATL_DEV
17

Alat baris perintah nuget tidak disertakan dengan file vsix, ini adalah unduhan terpisah

https://github.com/nuget/home

Betty
sumber
Ini adalah jawaban paling benar untuk pertanyaan khusus ini.
Brady
12
  • Klik kanan pada proyek Anda di penjelajah solusi .
  • Pilih Kelola Paket NuGet untuk Solusi .
  • Cari NuGet.CommandLine oleh Microsoft dan Instal. Cari Nuget.CommandLine
  • Saat instalasi selesai, Anda akan menemukan folder bernama paket di proyek Anda. Buka penelusur solusi dan cari. paket
  • Di dalam paket cari folder bernama NuGet.CommandLine.3.5.0 , di sini 3.5.0 hanya nama versi nama folder Anda akan berubah sesuai. nuGet COmmand Line
  • Di dalam NuGet.CommandLine.3.5.0 cari folder bernama alat . alat
  • Di dalam alat Anda akan mendapatkan nuget.exe Anda nuget.exe
DeltaCap019
sumber
Pengecualian terjadi. (Pengecualian dari HRESULT: 0x80020009 (DISP_E_EXCEPTION))
AgentFire
11

Di Visual Studio:

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

Di PM:

Install-Package NuGet.CommandLine

Tutup Visual Studio dan buka lagi.

Kiran Chaudhari
sumber
7

Saya menyiasatinya dengan menemukan nuget.exe dan pindah ke jalur yang mudah diketik (c: \ nuget \ nuget) dan kemudian memanggil nuget dengan jalur ini. Ini sepertinya menyelesaikan masalah. c: \ nuget \ nuget di konsol pengelola paket berfungsi seperti yang diharapkan. Saya mencoba menemukan jalur yang digunakan konsol dan mengubah jalur lingkungan tetapi tidak pernah bisa membuatnya bekerja dengan cara itu.

done_merson
sumber
1
Ini harus menjadi jawaban yang diterima. Benar-benar tidak lebih rumit dari ini!
Florian Winter
Perbarui November 2019 - nuget.exe adalah .exe yang diperlukan untuk alat baris perintah Nuget (melalui konsol Powershell atau cmd, atau Konsol Pengelola Paket Nuget di VS) - lihat di sini docs.microsoft.com/en-us/nuget/ referensi /… . Jika Anda tidak memilikinya, dapatkan di sini - nuget.org/downloads
Chris Halcrow
4

Ambil nuget.exedari https://www.nuget.org/downloads. Salin ke folder lokal dan tambahkan folder itu ke PATHvariabel lingkungan.

Ini akan membuat nuget tersedia secara global, dari proyek apa pun.

misha
sumber
Semudah itu. Buat "c: \ Nuget", lalu pergi ke variabel lingkungan, Jalur ganda, Klik Baru, masukkan "C: \ Nuget" dan selesai. Melakukan semuanya adalah studio visual 2010. Gunakan Powershell atau baris perintah.
Nick Turner