ไม่รู้จัก 'nuget' แต่คำสั่ง nuget อื่น ๆ ใช้งานได้


113

ฉันกำลังพยายามสร้างแพ็คเกจ nuget โดยใช้http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#From_a_convention_based_working_directory เป็นข้อมูลอ้างอิง My Package Manger Console ใน Visual Studio ไม่อนุญาตให้ใช้คำสั่ง 'nuget' ฉันสามารถ 'ขอความช่วยเหลือ nuguet' และมันจะแสดง:

รวม cmdlet ของ 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' เป็นชื่อของ cmdlet ฟังก์ชันไฟล์สคริปต์หรือโปรแกรมที่ทำงานได้ ตรวจสอบการสะกดชื่อหรือถ้ามีพา ธ ตรวจสอบว่าพา ธ ถูกต้องแล้วลองใช้ ag 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 หายไป แต่ฉันไม่พบวิธีกำหนดค่าพา ธ ที่คอนโซลตัวจัดการแพ็กเกจใช้และฉันไม่แน่ใจว่า cmdlet nuget ถูกเก็บไว้ที่ใด

อัปเดตแล้ว --- ลองดาวน์โหลดเครื่องมือบรรทัดคำสั่งตามที่แนะนำด้านล่าง สิ่งนี้ทำให้ไม่มีอะไรทำงานได้อีก ฉันพยายามถอนการติดตั้งและตอนนี้ฉันมีไอเท็มในขอบเขต vs2010 สำหรับ nuget ที่ไม่ได้เปิดใช้งานปุ่มติดตั้งหรือถอนการติดตั้ง สิ่งนี้ทำให้ฉันเชื่อว่ามันเกี่ยวข้องกับส่วนขยายที่ติดตั้งในปี 2010 และ 2012 ที่มีส่วนในละครเรื่องเล็กของฉัน หากใครรู้วิธีกำจัดส่วนขยายที่ถอนการติดตั้งได้โปรดแนะนำด้วย แต่ฉันจะลองคำถามอื่น


1
คุณเปิดใช้งาน UAC หรือไม่และคุณได้ลองเรียกใช้ Visual Studio ในฐานะผู้ดูแลระบบเพื่อยกเลิกการเชื่อมต่อส่วนขยายหรือไม่
Betty

Install-Package NuGet.CommandLine คือคำตอบที่ถูกต้อง
live-love

@ live-love OP พยายามสร้างแพ็คเกจไม่ใช่ติดตั้งแพ็คเกจ
Nick Turner

คำตอบ:


20

คุณยังสามารถลองตั้งค่าพา ธ ตัวแปรระบบไปยังตำแหน่งของ exe nuget ของคุณและรีสตาร์ท VS

  1. เปิดระบบของคุณPATHตัวแปรและเพิ่มสถานที่ตั้งของ nuget.exe คุณ (สำหรับผมคือ: C:\Program Files (x86)\NuGet\Visual Studio 2013)
  2. รีสตาร์ท Visual Studio

ฉันจะโพสต์สิ่งนี้เป็นความคิดเห็นสำหรับคำตอบของคุณ@done_merson แต่ฉันไม่มีชื่อเสียงที่จำเป็นในการทำเช่นนั้น


151

Nuget.exe อยู่ใน.nugetโฟลเดอร์ของโครงการของคุณ ไม่สามารถดำเนินการได้โดยตรงใน Package Manager Console แต่ดำเนินการโดยคำสั่ง Powershell เนื่องจากคำสั่งเหล่านี้สร้างเส้นทางที่กำหนดเองสำหรับตัวเอง

ขั้นตอนในการแก้ปัญหาของฉันคือ:


อัปเดต

NuGet สามารถติดตั้งได้อย่างง่ายดายในโครงการของคุณโดยใช้คำสั่งต่อไปนี้:

ติดตั้งแพ็คเกจ NuGet.CommandLine


สิ่งที่ควรป้อนเป็น "ชื่อตัวแปร"
Ievgen Naida

1
ฉันต้องวาง nuget.exe ในไดรฟ์เดียวกับที่ฉันเรียกใช้คำสั่ง nuget (และปรับค่าตัวแปรสภาพแวดล้อม PATH ให้สอดคล้องกัน)
mediafreakch

คุณสามารถดูตัวแปรสภาพแวดล้อม PATH ได้โดยไปที่แผงควบคุม> ระบบ> การตั้งค่าระบบขั้นสูงจากนั้นบนหน้าต่างคุณสมบัติของระบบคลิกแท็บขั้นสูงจากนั้นคุณจะเห็นปุ่ม "ตัวแปรสภาพแวดล้อม ... " ภายใต้กลุ่มตัวแปรระบบให้ค้นหาตัวแปรสภาพแวดล้อมเส้นทาง จากนั้นเพิ่มเส้นทางอื่นโดยการคั่นด้วยเครื่องหมายอัฒภาค (;)
Jerameel Resco

1
ต้องมีข้อผิดพลาดบางอย่าง .... ฉันได้รับPackage 'NuGet.CommandLine.3.3.0' already exists in project 'TimeLoop'แต่เมื่อฉันเขียน NuGet ฉันเพิ่งได้รับข้อผิดพลาดที่ไม่มีคำสั่ง
ปีเตอร์

23
Install-Package NuGet.CommandLineแย่มากเพราะ 1. มันเพิ่มNuGet.CommandLineการพึ่งพาโครงการของฉัน (เอ๊ะ!) และ 2. ต้องทำแยกกันในทุกโครงการ npmมีตัวเลือก 'การติดตั้งทั่วโลก' - NuGet ไม่มีสิ่งที่คล้ายกัน!?
BlueRaja - Danny Pflughoeft

60

มีวิธีที่ดีกว่านี้มาก

  1. ติดตั้งแพ็คเกจ Nuget.Build ในโปรเจ็กต์ที่คุณต้องการแพ็ค อาจต้องปิดและเปิดโซลูชันใหม่หลังจากติดตั้ง
  2. ติดตั้ง nuget ผ่านช็อคโกแลต - ดีกว่ามาก ติดตั้ง chocolatey: https://chocolatey.org/จากนั้นเรียกใช้

    cinst Nuget.CommandLine

ในพรอมต์คำสั่งของคุณ สิ่งนี้จะติดตั้งเส้นทางสภาพแวดล้อมของ nuget และการตั้งค่าดังนั้น nuget จึงพร้อมใช้งานเสมอ


ไม่เว้นแต่คุณจะใช้ npm เพื่อติดตั้งช็อกโกแลต
Oleg Mihailik

หลังจากไม่มีโชคกับคำตอบอื่น ๆ สิ่งนี้ได้ผลสำหรับฉันทันที Chocolatey ช่วยให้ฉันต้องกำหนดค่า PATH ด้วยตนเอง
Sam

47

ใน[Package Manager Console]ลองด้านล่าง

Install-Package NuGet.CommandLine

หลังจาก "Install-Package NuGet.CommandLine" สามารถเรียกใช้ nuget.exe ใน PM ได้
BinSys

13
Execute: ไม่รู้จักคำว่า 'Execute' เป็นชื่อของ cmdlet ฟังก์ชันไฟล์สคริปต์หรือโปรแกรมที่ใช้งานได้ ตรวจสอบการสะกดชื่อหรือถ้ามีพา ธ ตรวจสอบว่าพา ธ ถูกต้องแล้วลองอีกครั้ง VS2015
ปล้น

ฉันพบปัญหาเดียวกันกับ @rob
Grant Birchmeier

3
อย่าพิมพ์บรรทัด "Execute ... " ทั้งหมด เพียงพิมพ์:Install-Package NuGet.CommandLine
Serj Sagan

ทำไมโอ้ทำไม MS ทำทุกอย่างผิด! ถ้าพวกเขาวิ่งโรงไฟฟ้านิวเคลียร์เราทุกคนจะต้องตาย! เหตุใดคำสั่งที่สำคัญเหล่านี้จึงไม่สามารถใช้งานได้และต้องดาวน์โหลดแยกต่างหาก เห็นได้ชัดว่าไม่ช่วยให้เราประหยัดพื้นที่ไดรฟ์เนื่องจาก Microsoft จะติดตั้ง bloatware ทุกครั้งที่มีโอกาส
ATL_DEV


12
  • คลิกขวาในโครงการของคุณในExplorer โซลูชัน
  • เลือกจัดการแพคเกจ 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


7

ฉันได้สิ่งนี้โดยการค้นหา nuget.exe และย้ายไปยังเส้นทางที่ง่ายต่อการพิมพ์ (c: \ nuget \ nuget) จากนั้นเรียก nuget ด้วยเส้นทางนี้ ดูเหมือนว่าจะแก้ปัญหาได้ c: \ nuget \ nuget ที่คอนโซลตัวจัดการแพ็กเกจทำงานตามที่คาดไว้ ฉันพยายามค้นหาเส้นทางที่คอนโซลกำลังใช้และเปลี่ยนเส้นทางสภาพแวดล้อม แต่ไม่สามารถทำให้มันทำงานในลักษณะนั้นได้


1
นี่ควรเป็นคำตอบที่ได้รับการยอมรับ จริงๆมันไม่ซับซ้อนไปกว่านี้!
Florian Winter

อัปเดตพฤศจิกายน 2019 - nuget.exe เป็น. exe ที่จำเป็นสำหรับเครื่องมือบรรทัดคำสั่ง Nuget (ผ่านคอนโซล Powershell หรือ cmd หรือคอนโซล Nuget Package Manager ใน VS) - ดูที่นี่docs.microsoft.com/en-us/nuget/ เอกสารอ้างอิง / … . หากคุณไม่มีให้ไปที่นี่ - nuget.org/downloads
Chris Halcrow

4

ดึงข้อมูลnuget.exeจากhttps://www.nuget.org/downloads. คัดลอกไปยังโฟลเดอร์ภายในเครื่องและเพิ่มโฟลเดอร์นั้นในPATHตัวแปรสภาพแวดล้อม

สิ่งนี้จะทำให้นักลงทุนสามารถใช้งานได้ทั่วโลกจากโครงการใด ๆ


ง่ายแค่นั้นเอง สร้าง "c: \ Nuget" จากนั้นไปที่ตัวแปรสภาพแวดล้อม double Path คลิก New ใส่ "C: \ Nuget" เป็นอันเสร็จสิ้น ทำทุกอย่างเป็นสตูดิโอภาพคือ 2010 ใช้ Powershell หรือบรรทัดคำสั่ง
Nick Turner
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.