ฉันจะแสดงรายการแพ็คเกจ NuGet ที่ติดตั้งทั้งหมดได้อย่างไร?


94

หนึ่งรายการแพ็คเกจ NuGet ที่ติดตั้งในเครื่องทั้งหมดได้อย่างไร?

มี NuGet เทียบเท่าRPM -qaหรือไม่? ภายในChocolateyมีchocolatey list -localonlyแต่สำหรับชีวิตของฉันฉันไม่สามารถหา NuGet ที่เทียบเท่ากับคำสั่งนั้นได้

คำตอบ:


95

ในNuGet Package Manager Consoleให้ป้อนคำสั่งต่อไปนี้:

Get-Package

สิ่งนี้จะพิมพ์รายการแพ็กเกจที่ติดตั้งออกมาหรือหากไม่มีให้เขียนบรรทัดต่อไปนี้ลงในคอนโซล:

PM> Get-Package
No packages installed.

สำหรับรายละเอียดเพิ่มเติมดูได้ที่ที่NuGet PowerShell อ้างอิง


12
มีวิธีดำเนินการโดยใช้ nuget.exe หรือไม่?
bitbonk

2
หลังจากใช้คำสั่งGet-Package, ชื่อแพคเกจถูกตัดเมื่อพวกเขามีมากกว่า 32 characteres เป็นไปได้ไหมที่จะเพิ่มคอลัมน์ชื่อแพ็กเกจเพื่อให้เอาต์พุตแสดงชื่อเต็มโดยไม่ต้องตัดทอน
Ulysses Alves

12
Get-Package | Format-Table -AutoSizeจะทำ
Mant101

57

ถ้าคุณเพิ่งทำ

Get-Package

มันจะแสดงรายการแพ็กเกจและสถานที่อ้างอิง มันจะแสดงรายการแพ็กเกจเดียวกันซ้ำแล้วซ้ำเล่าหากคุณมีการอ้างอิงหลายครั้ง หากคุณต้องการรับรายการแพ็คเกจทั้งหมดที่ติดตั้งในโซลูชันคุณสามารถทำได้

Get-Package | select -Unique Id, Versions

16
Get-Package -ProjectName "Your.Project.Name"

จะแสดงแพ็คเกจสำหรับโครงการที่ระบุ

ดูเพิ่มเติม: การอ้างอิง PowerShell คอนโซล Package Manager

โปรดทราบว่าแต่ละโปรเจ็กต์จะมีไฟล์ package.config ซึ่งใช้เพื่อติดตามแพ็กเกจที่ติดตั้ง หากมีการเปลี่ยนแปลง (โดยเฉพาะหากคุณแก้ไขย้อนหลัง) โปรเจ็กต์อาจไม่ดาวน์โหลดเวอร์ชันแพ็กเกจที่ถูกต้องโดยอัตโนมัติ ในกรณีนั้นให้จดบันทึกแพ็คเกจที่จำเป็นและทำการถอนการติดตั้งแพ็คเกจตามด้วยแพ็คเกจการติดตั้งสำหรับแต่ละแพ็คเกจ

นอกจากนี้การสำรองข้อมูลเป็นเพื่อนของคุณ! ;)


12

ใน Visual Studio

  • ไปที่โครงการหรือโซลูชั่นในคำถาม
  • คลิกขวาจัดการ NuGet Packages ...
  • ทางด้านซ้ายคุณจะเห็น ' แพ็คเกจที่ติดตั้ง '
  • คลิกที่นี่และคุณจะเห็นรายการ

9

นอกเหนือจากคำตอบที่ให้มาทั้งหมดแล้วยังมีรายการที่สะอาดในรูปแบบ XML ของแพ็คเกจที่ติดตั้งทั้งหมดในโฟลเดอร์รากของโครงการ Visual Studio ของคุณ: package.config :

ใส่คำอธิบายภาพที่นี่


ในความคิดของฉันการตอบสนองที่ดีที่สุด
etiennejcharles

ด้วยโครงสร้างไฟล์โปรเจ็กต์ใหม่ที่นำมาใช้ใน Visual Studio 2017 เวอร์ชัน 15.7 แพ็คเกจ NuGet สามารถ (หรือสำหรับโปรเจ็กต์ใหม่) ถูกย้ายไปยังไฟล์โปรเจ็กต์และคุณจะไม่พบpackages.configไฟล์ โปรดดูเอกสารไมโครซอฟท์
Frode Evensen

ซึ่งจะช่วยให้คุณได้ครั้งละหนึ่งโครงการเท่านั้น ฉันมีโครงการประมาณ 250 โครงการในโซลูชันของฉันดังนั้นคำตอบอื่น ๆ จะดีกว่าหากคุณไม่ต้องการดำเนินการแก้ปัญหาทีละข้อ
RosieC

5

ฉันจะแสดงรายการ NuGet Packages ที่ติดตั้งทั้งหมดได้อย่างไร?

สมมติว่าNuGet ได้รับการติดตั้งอย่างถูกต้อง

คลิกขวาที่โหนดโครงการแล้วคลิกจัดการแพ็คเกจ NuGet

คลิกขวาที่โหนดโครงการ

ดูรายการแพ็คเกจที่ติดตั้ง

ดูแพ็คเกจที่ติดตั้ง



3

หากคุณติดตั้งรันไทม์. NET Core คุณสามารถใช้คำสั่งdotnet list packageในเครื่องมือ. NET Core CLI เพื่อดึงแพ็กเกจที่ติดตั้งสำหรับโซลูชันหรือโปรเจ็กต์ที่กำหนด ใช้มันจากบรรทัดคำสั่งของ Windows:

dotnet list "C:\Source\MySolution\MySolution.sln" package

ใช้งานได้กับทั้งโครงการ. NET Framework และ. NET Core

หมายเหตุ:เพื่อให้คำสั่งนี้ทำงานโซลูชันต้องใช้รูปแบบ NuGet PackageReference ใหม่สำหรับการอ้างอิงแพ็คเกจ NuGet การย้ายข้อมูลทำได้ง่ายเพียงคลิกขวาที่ package.config แล้วคลิก "Migrate Packages.config ไปที่ PackageReference ... " จากนั้นเรียกคืนแพ็กเกจโดยสร้างโซลูชัน


ใช้งานได้กับ. NET Core แต่ไม่ใช่สำหรับ. NET 4.5 วิธีแก้ไข: อย่างน้อยก็เป็นกรณีนี้ในคอมพิวเตอร์ของฉัน
Christian Casutt

1
@ChristianCasutt ฉันเพิ่งทดสอบและใช้งานได้ดีบน. NET Framework 4.5 สิ่งเดียวที่ฉันต้องทำคือย้ายจาก package.config ไปที่ PackageReferenceจากนั้นเรียกคืนแพ็คเกจ nuget โดยการสร้างโซลูชัน
Shahin Dohan

ไม่มีความแตกต่างระหว่างการอ้างอิง / การใช้งานและการติดตั้ง? แพ็คเกจ NuGet ไม่ได้ติดตั้งทั่วโลกโดยไม่ขึ้นกับโซลูชัน / โครงการใช่หรือไม่
Peter Mortensen

@PeterMortensen ฉันสมมติว่าที่นี่ OP หมายถึงการติดตั้งสำหรับโครงการ / โซลูชัน แพ็กเกจที่ดาวน์โหลดทั่วโลกจะถูกแคชไว้และฉันไม่คิดว่าคำว่า "ติดตั้ง" จะสมเหตุสมผลในบริบทนั้น
Shahin Dohan

0

ตอบ "มีวิธีดำเนินการโดยใช้ nuget.exe หรือไม่" - bitbonk

อ้างอิงจากคำตอบของjstarด้านบน ฉันใช้\แทน/สิ่งที่เหมาะกับสภาพแวดล้อม Windows ที่ nuget อยู่ที่บ้านมากกว่า การแก้ไขคำตอบของฉันถูกปฏิเสธดังนั้นฉันจึงโพสต์เอง

nuget list -Source c:\code\packages

c:\codeเส้นทางไปยังที่เก็บโค้ดในเครื่องของคุณอยู่ที่ไหน packagesโฟลเดอร์ที่อยู่ในระดับเดียวกันเช่นการแก้ปัญหาไฟล์ของคุณ (* .sln)


แต่จะแสดงรายการแหล่งที่มา (ที่มาของแพ็คเกจ) ไม่ใช่แพ็คเกจที่ติดตั้ง (?)
Peter Mortensen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.