"nuget" tanınmıyor, ancak diğer nuget komutları çalışıyor


113

Referans olarak http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#From_a_convention_based_working_directory kullanarak bir nuget paketi oluşturmaya çalışıyorum . Visual Studio'daki Paket Yöneticisi Konsolum 'nuget' komutunu kullanmama izin vermiyor. 'Yardım alma nuguet'i yapabiliyorum ve şunu gösteriyor:

Aşağıdaki NuGet cmdlet'leri dahildir.

    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.
  • Bununla birlikte, nuget ile komutları her başlattığımda şunu verir:

'Nuget' terimi bir cmdlet, işlev, komut dosyası dosyası veya çalıştırılabilir programın adı olarak tanınmaz. Adın yazımını kontrol edin veya bir yol dahil edilmişse, yolun doğru olduğunu doğrulayın ve tekrar deneyin.

Satırda: 1 karakter: 6 + nuget <<<< + CategoryInfo: ObjectNotFound: (nuget: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Aşağıdaki çözümleri denedim:

1> tüm öğeleri kapat ve yeniden başlat

2> kaldırma ve yeniden yükleme

3> bir powershell profil dosyası oluşturmak (bu daha önce mevcut değildi ve bu aslında her şeyi bozdu)

Sorun, Visual Studio 2012 Ultimate deneme sürümümü kayıtlı olarak yükselttikten sonra görünmeye başladı. Başlangıçta VS 12 Pro'yu kurmuştum. Gerçekten bununla bir ilgisi var mı bilmiyorum ama benzer sorunları olanların 10 ve 12'ye karşı yüklü olduğunu fark ettim.

Sorum "başka ne deneyeceğini bilen var mı?" Teorim, nuget komutunun yolunun eksik olduğu, ancak paket yöneticisi konsolunun kullandığı yolları nasıl yapılandıracağımı bulamıyorum ve cmdlet nuget'in gerçekte nerede depolandığından emin değilim.

Güncellendi --- aşağıda önerildiği gibi komut satırı aracını indirmeyi denedi. Bu, hiçbir şeyin tekrar çalışmamasına neden olur. Kaldırmayı denedim ve şimdi nuget için vs2010 uzantılarında bir yükleme veya kaldırma düğmesi etkin olmayan bir öğem var. Bu, benim küçük dramamda rol alan 2010 ve 2012'de kurulan uzantılarla ilgisi olduğuna inanmamı sağlıyor. Kaldırılabilir bir uzantıya nasıl bomba atılacağını da bilen varsa, lütfen aynı zamanda tavsiyede bulunun, ancak bunun için başka bir soru deneyeceğim.


1
UAC'yi etkinleştirdiniz mi ve uzantının tümünü kaldırmak için Visual Studio'yu yönetici olarak çalıştırmayı denediniz mi?
Betty

Install-Package NuGet.CommandLine doğru yanıttır.
canlı aşk

@ live-love OP bir paket yüklemeye değil, bir paket oluşturmaya çalışıyor
Nick Turner

Yanıtlar:


20

Ayrıca, sistem değişkeni yolunu nuget exe'nizin konumuna ayarlamayı ve VS'yi yeniden başlatmayı deneyebilirsiniz.

  1. Sistem açın PATHdeğişkeni ve nuget.exe konumunu ekleyin (benim için şu: C:\Program Files (x86)\NuGet\Visual Studio 2013)
  2. Visual Studio'yu yeniden başlatın

Bunu cevabınıza bir yorum olarak @done_merson gönderirdim ama bunu yapmak için gerekli itibara sahip değildim.


151

Nuget.exe, .nugetprojenizin klasörüne yerleştirilir . Doğrudan Paket Yöneticisi Konsolu'nda yürütülemez, ancak Powershell komutları tarafından yürütülür çünkü bu komutlar kendileri için özel yol oluşturur.

Çözmem gereken adımlar:


Güncelleme

NuGet, aşağıdaki komutu kullanarak projenize kolayca yüklenebilir:

Kurulum Paketi NuGet.CommandLine


'Değişken adı' olarak ne girilmelidir?
Ievgen Naida

1
NuGet.exe'yi, nuget komutunu çalıştırdığım yerle aynı sürücüye yerleştirmek zorunda kaldım (ve PATH ortam değişkeni değerini buna göre ayarladım)
mediafreakch

PATH ortam değişkenini Denetim Masası> Sistem> Gelişmiş Sistem Ayarları'na giderek ve ardından Sistem Özellikleri penceresinde Gelişmiş sekmesine tıklayarak görebilirsiniz ve orada "Ortam Değişkenleri ..." düğmesini göreceksiniz. Sistem değişkenleri grubu altında PATH ortam değişkenini bulun. Ardından noktalı virgülle (;) sınırlandırarak başka bir yol ekleyin.
Jerameel Resco

1
Bir hata olmalı .... Anlıyorum Package 'NuGet.CommandLine.3.3.0' already exists in project 'TimeLoop' ama NuGet'i yazdığımda komutun bulunmadığına dair bir hata alıyorum.
Peter

23
Install-Package NuGet.CommandLineKorkunç çünkü 1. NuGet.CommandLineProjeme bağımlılık yaratıyor (ew!) ve 2. Her projede ayrı ayrı yapılması gerekiyor. npm'genel yükleme' seçeneğine sahiptir - NuGet'in benzer bir özelliği yok mu !?
BlueRaja - Dany Pflughoeft

60

Bunu yapmanın çok daha güzel yolları var.

  1. Paketlemek istediğiniz projenize Nuget.Build paketini kurun. Yüklemeden sonra çözümü kapatıp yeniden açmanız gerekebilir.
  2. Nuget'i chocolatey ile kurun - çok daha güzel. Chocolatey'i yükleyin: https://chocolatey.org/ , ardından çalıştırın

    cinst Nuget.CommandLine

komut isteminizde. Bu, nuget ve kurulum ortamı yollarını kuracaktır, böylece nuget her zaman kullanılabilir.


Chocolatey'i yüklemek için npm kullanmadığınız sürece
Oleg Mihailik

Diğer cevaplarda hiç şansım kalmadıktan sonra, bu benim için hemen işe yaradı. Chocolatey beni PATH yapılandırmasını manuel olarak yapmak zorunda
Sam

47

Aşağıdakileri [Package Manager Console]deneyin

Install-Package NuGet.CommandLine

"Install-Package NuGet.CommandLine" sonrasında nuget.exe PM'de çalıştırılabilir.
BinSys

13
Yürütme: 'Yürütme' terimi bir cmdlet, işlev, komut dosyası dosyası veya çalıştırılabilir program adı olarak tanınmaz. Adın yazılışını kontrol edin veya bir yol dahil edilmişse, yolun doğru olduğunu doğrulayın ve tekrar deneyin. VS2015
rob

@Rob ile aynı sorunu yaşıyorum.
Grant Birchmeier

3
"Yürüt ..." satırının tamamını yazmayın. Sadece yazın:Install-Package NuGet.CommandLine
Serj Sagan

Neden oh neden MS her şeyi yanlış yapıyor ?! Nükleer santral çalıştırsalar hepimiz ölmüş oluruz! Bu kritik komutlar neden mevcut değil ve ayrı olarak indirilmeleri gerekiyor? Açıkçası, Microsoft, fırsat bulduklarında bloatware'lerini kolayca yükleyeceği için, bize sürücü alanından tasarruf etmek değildir.
ATL_DEV


12
  • Çözüm gezgininde projenize sağ tıklayın .
  • Çözüm için NuGet Paketlerini Yönet'i seçin .
  • Microsoft tarafından NuGet.CommandLine'da arama yapın ve yükleyin. Nuget.CommandLine'da Ara
  • Tam kurulumda, projenizde paketler olarak adlandırılan bir klasör bulacaksınız . Çözüm gezginine gidin ve arayın. paketler
  • Paketlerin içinde NuGet.CommandLine.3.5.0 adlı bir klasör arar , burada 3.5.0 yalnızca sürüm adıdır, klasör adınız buna göre değişir. nuGet COmmand Hattı
  • İçinde NuGet.CommandLine.3.5.0 adlı bir klasör aramak araçlar . araçlar
  • İçerideki araçlar nuget.exe dosyanızı alacaksınız nuget.exe

İstisna oldu. (HRESULT istisnası: 0x80020009 (DISP_E_EXCEPTION))
AgentFire

11

Visual Studio'da:

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

Öğleden sonra:

Install-Package NuGet.CommandLine

Visual Studio'yu kapatın ve yeniden açın.


7

NuGet.exe dosyasını bularak ve yazması kolay bir yola (c: \ nuget \ nuget) geçerek ve ardından bu yolla nuget'i çağırarak bu sorunu çözdüm. Bu sorunu çözüyor gibi görünüyor. Paket yöneticisi konsolundaki c: \ nuget \ nuget beklendiği gibi çalışıyor. Konsolun kullandığı ve ortam yolunu değiştirdiği yolu bulmaya çalıştım, ancak hiçbir zaman bu şekilde çalışmasını sağlayamadım.


1
Kabul edilen cevap bu olmalıdır. Gerçekten bundan daha karmaşık değil!
Florian Winter

Kasım 2019 Güncellemesi - nuget.exe, Nuget komut satırı araçları için gerekli olan .exe'dir (bir Powershell veya cmd konsolu veya VS'deki Nuget Paket Yöneticisi Konsolu aracılığıyla) - buraya bakın docs.microsoft.com/en-us/nuget/ referans /… . Elinizde yoksa buradan alın - nuget.org/downloads
Chris Halcrow

4

Al nuget.exedan https://www.nuget.org/downloads. Yerel bir klasöre kopyalayın ve bu klasörüPATH ortam değişkenine .

Bu, nuget'i herhangi bir projeden küresel olarak kullanılabilir hale getirecektir.


Bu sadece bu kadar kolay. "C: \ Nuget" oluşturun, ardından ortam değişkenlerine gidin, Yol'u çift tıklayın, Yeni'ye tıklayın, "C: \ Nuget" yazın ve bitirdiniz. Her şeyi yapmak görsel stüdyo 2010'dur. Powershell veya komut satırını kullanın.
Nick Turner
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.