ฉันมี. nupkg บางไฟล์จากหนังสือ C # ฉันจะติดตั้งได้อย่างไร
ฉันมี. nupkg บางไฟล์จากหนังสือ C # ฉันจะติดตั้งได้อย่างไร
คำตอบ:
เครื่องมือเมนู→ ตัวเลือก → ตัวจัดการแพคเกจ
ให้ชื่อและที่ตั้งโฟลเดอร์ คลิกตกลง วางไฟล์แพ็คเกจ NuGet ของคุณในโฟลเดอร์นั้น
ไปที่โครงการของคุณคลิกขวาและเลือก"จัดการแพคเกจ NuGet"และเลือกแหล่งแพคเกจใหม่ของคุณ
คุณยังสามารถใช้Package Manager Consoleและเรียกใช้Install-Package
cmdlet โดยระบุพา ธ ไปยังไดเร็กทอรีที่มีไฟล์แพ็กเกจใน-Source
พารามิเตอร์:
Install-Package SomePackage -Source C:\PathToThePackageDir\
-Source
ตัวเลือกที่มีอยู่ในnuget.exeเช่นกัน ตัวอย่างเช่น:nuget install SomePackage -Source C:\PathToThePackageDir
สำหรับไฟล์. n กก. ฉันชอบที่จะใช้:
Install-Package C:\Path\To\Some\File.nupkg
.nupkg
ภายใต้ไดเรกทอรีเดียวกันทุกแพคเกจอื่น ๆ ที่ถูกเก็บไว้)
คุณไม่สามารถใช้เพียงแค่ Install-Package เพื่อชี้ไปที่ไฟล์ในเครื่อง (นั่นน่าจะเป็นเพราะPackageReference
องค์ประกอบไม่รองรับเส้นทางไฟล์ แต่อนุญาตให้คุณระบุรหัสแพ็คเกจเท่านั้น)
คุณต้องบอก Visual Studio เกี่ยวกับตำแหน่งที่ตั้งของแพ็คเกจก่อนจากนั้นคุณสามารถเพิ่มลงในโครงการได้ สิ่งที่คนส่วนใหญ่ทำคือเข้าไปใน NuGet Package Manager และเพิ่มโฟลเดอร์ในเครื่องเป็นแหล่ง (เมนูเครื่องมือ → ตัวเลือก → ตัวจัดการแพคเกจ NuGet → แหล่งที่มาของแพคเกจ ) แต่นั่นหมายความว่าตำแหน่งของการอ้างอิงของคุณไม่ได้ถูกกำหนด (เพื่อควบคุมเวอร์ชัน) ด้วยส่วนที่เหลือของโค้ดเบสของคุณ
นี่จะเพิ่มแหล่งแพ็กเกจที่ใช้กับโซลูชันเฉพาะเท่านั้นและคุณสามารถใช้พา ธ สัมพัทธ์
คุณต้องสร้างnuget.config
ไฟล์ในไดเรกทอรีเดียวกับของคุณ.sln
ไฟล์กำหนดค่าไฟล์ด้วยซอร์สแพ็กเกจที่คุณต้องการ เมื่อคุณเปิดโซลูชันใน Visual Studio 2017 ครั้งถัดไปไฟล์. nupkg ใด ๆ จากโฟลเดอร์ต้นทางเหล่านั้นจะพร้อมใช้งาน (คุณจะเห็นแหล่งที่อยู่ในรายการใน Package Manager และคุณจะพบแพ็คเกจในแท็บ "เรียกดู" เมื่อคุณจัดการแพคเกจสำหรับโครงการ)
นี่คือตัวอย่างnuget.config
เพื่อให้คุณเริ่มต้น:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="MyLocalSharedSource" value="..\..\..\some\folder" />
</packageSources>
</configuration>
กรณีการใช้งานของฉันสำหรับฟังก์ชั่นนี้คือฉันมีที่เก็บรหัสเดียวหลายอินสแตนซ์บนเครื่องของฉัน มีไลบรารีที่แบ่งใช้ภายใน codebase ที่มีการเผยแพร่ / ปรับใช้เป็นไฟล์. nupkg วิธีการนี้จะช่วยให้การแก้ปัญหาที่หลากหลายขึ้นอยู่กับ codebase ของเราเพื่อใช้แพคเกจภายในอินสแตนซ์ที่เก็บเดียวกัน นอกจากนี้บางคนที่มีการติดตั้งใหม่ของ Visual Studio 2017 ก็สามารถเช็คเอาต์รหัสได้ทุกที่ที่พวกเขาต้องการและโซลูชั่นที่ขึ้นต่อกันจะสามารถกู้คืนและสร้าง
-Source
โต้แย้งไปUpdate-Package
และมันก็ทำงานได้ดี บางทีสิ่งที่ต้องทำโดยเฉพาะกับInstall-Package
คำสั่ง?
สร้างไฟล์ชื่อ NuGet.config ถัดจากไฟล์โซลูชันของคุณโดยมีเนื้อหาดังต่อไปนี้
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="LocalPackages" value="./LocalPackages" />
</packageSources>
<activePackageSource>
<!-- this tells that all of them are active -->
<add key="All" value="(Aggregate source)" />
</activePackageSource>
</configuration>
หากโซลูชันเปิดใน Visual Studio ให้ปิดแล้วเปิดใหม่อีกครั้ง
ตอนนี้แพ็คเกจของคุณควรปรากฏในเบราว์เซอร์หรือสามารถติดตั้งได้โดยใช้ Install-Package
หากคุณมีไฟล์. nupkg และเพียงแค่ต้องการไฟล์. dll สิ่งที่คุณต้องทำคือเปลี่ยนนามสกุลเป็น. zip และค้นหาไดเรกทอรี lib
เพียงแค่ให้อัปเดตมีการเปลี่ยนแปลงเล็กน้อยสำหรับผู้ใช้ Visual Studio 2015
หากต้องการใช้หรือติดตั้งแพ็คเกจด้วยตนเองไปที่เครื่องมือ -> ตัวเลือก -> NuGet Package Manager -> แหล่งแพ็คเกจ
คลิกปุ่มเพิ่มเลือกแหล่งที่มาและอย่าลืมคลิก " อัปเดต " เนื่องจากมันจะอัปเดตตำแหน่งโฟลเดอร์สำหรับแพ็คเกจของคุณแก้ไขชื่อที่คุณต้องการจากแหล่งแพคเกจของคุณหากคุณต้องการ:
ในการเลือกแพ็คเกจที่เพิ่มให้คลิกขวาที่โซลูชันของคุณแล้วเลือก " จัดการแพคเกจ Nuget "
รายการแบบหล่นลงอยู่ทางขวาและเลือกเรียกดูเพื่อเรียกดูแพ็คเกจที่คุณระบุในแหล่งโฟลเดอร์ของคุณ หากไม่มีแพ็กเกจ nuget บนซอร์สโฟลเดอร์นั้นจะว่างเปล่า:
บน Linux ด้วย NuGet CLI คำสั่งจะคล้ายกัน ในการติดตั้ง my.nupkg ให้เรียกใช้
nuget add -Source some/directory my.nupkg
จากนั้นเรียกใช้dotnet restore
จากไดเรกทอรีนั้น
dotnet restore --source some/directory Project.sln
หรือเพิ่มไดเรกทอรีนั้นเป็นแหล่ง NuGet
nuget sources Add -Name MySource -Source some/directory
แล้วบอกmsbuild
จะใช้ไดเรกทอรีที่มีหรือ/p:RestoreAdditionalSources=MySource
/p:RestoreSources=MySource
สวิตช์ที่สองจะปิดใช้งานแหล่งข้อมูลอื่นทั้งหมดซึ่งดีสำหรับสถานการณ์ออฟไลน์ตัวอย่างเช่น