ฉันสามารถเผยแพร่แพ็คเกจ NuGet ส่วนตัวได้หรือไม่


107

ฉันมีแอสเซมบลีที่ฉันทำขึ้นซึ่งเฉพาะสำหรับทีมของฉันที่ บริษัท ของฉัน ฉันต้องการใช้ NuGet เพื่อให้การประกอบนี้พร้อมใช้งานกับโครงการอื่น ๆ ที่ทีมของฉันและทีมที่คล้ายกันใน บริษัท ของฉันกำลังดำเนินการอยู่ อย่างไรก็ตามแอสเซมบลีไม่ใช่โค้ดที่ฉันต้องการแบ่งปันกับคนทั้งโลก

ฉันรู้จักกับ Maven คุณสามารถสร้างที่เก็บในเครื่องและแพ็กเกจต้นทางจาก repo ในเครื่อง NuGet รองรับการทำงานที่คล้ายกันหรือไม่? NuGet มีวิธีระบุที่เก็บในเครื่องหรือเพื่อให้มีแพ็คเกจส่วนตัวหรือไม่?

คำตอบ:


92

ใช่ คุณสามารถโฮสต์เซิร์ฟเวอร์ NuGet ของคุณเองได้!

วิธีที่ง่ายที่สุดคือสร้างโฟลเดอร์ที่ใช้ร่วมกันบนเซิร์ฟเวอร์ของคุณและอ้างอิงว่าเป็นเซิร์ฟเวอร์ Nuget ของคุณ

คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับวิธีการได้ที่: Hosting Your Own NuGet Feeds


3
ที่ลิงค์ด้านบนให้เลื่อนลงไปที่ส่วน "การสร้างฟีดระยะไกล" หากคุณต้องการสร้างเซิร์ฟเวอร์จริงซึ่งเข้าถึงได้ผ่าน HTTP เพื่อโฮสต์แอสเซมบลีของคุณ
Kevin Kalitowski

6
แม้ว่านี่อาจเป็นวิธีที่ง่ายที่สุด แต่ก็หมายความว่าคุณต้องแชร์โฟลเดอร์กับทุกคนและทุกคนที่มีสิทธิ์เข้าถึงอาจมีอารมณ์ (โดยไม่ตั้งใจหรือไม่) กับเนื้อหาในโฟลเดอร์ วิธีที่ดีกว่า (วิธีง่ายๆ) คือการสร้างเซิร์ฟเวอร์ของคุณเองโดยใช้NuGet.Serverและโฮสต์อยู่ใน IIS หรือ Azure จากนั้นคุณจะสามารถพุชแพ็กเกจโดยใช้คีย์ API และทุกคนสามารถสมัครรับฟีดได้ นี่เป็นคู่มือที่ง่ายต่อการสร้างเซิร์ฟเวอร์ NuGet ของคุณเอง
Alex Sanséau

ทำงานอย่างมีเสน่ห์!
Andro

ผมมีปัญหาเหมือนกัน. และพบสิ่งต่อไปนี้ Scott: hanselman.com/blog/… ด้วย: nicolaiarocci.com/…
Michael Mittermair

21

อีกทางเลือกหนึ่งสำหรับการโฮสต์เซิร์ฟเวอร์ NuGet ของคุณเองคือการใช้ JetBrains TeamCity เป็นเซิร์ฟเวอร์สร้าง การติดตั้งมีการอธิบายไว้ที่นี่

เซิร์ฟเวอร์ Team City ทำหน้าที่เป็นที่เก็บ NuGet ที่สามารถ / สามารถ / ควรเข้าถึงได้ภายใน บริษัท ของคุณเท่านั้น

ขึ้นอยู่กับการใช้งานของคุณมีซอฟต์แวร์เวอร์ชันฟรี

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


2
แม้ว่าคุณจะถูกต้อง TeamCity มีส่วนเกี่ยวข้องกับ NuGet เพียงเล็กน้อยเท่านั้นและมีตัวเลือกอื่น ๆ สำหรับเซิร์ฟเวอร์ NuGet (ซึ่งเป็นสิ่งที่เขาต้องการ) TeamCity ค่อนข้างเซิร์ฟเวอร์บูรณาการอย่างต่อเนื่องที่เกิดขึ้นจะมีเซิร์ฟเวอร์ในตัว NuGet
Jim Aho

14

ตรวจสอบProget Free Edition ; เราสร้างขึ้นมาเพื่อจุดประสงค์นี้ ใช้เวลาน้อยลงในการตั้งค่าและนำเสนอคุณสมบัติมากมายที่เหนือกว่าที่เซิร์ฟเวอร์ NuGet มาตรฐานนำเสนอเช่นหลายฟีดการรวมฟีดและประเภทพื้นที่เก็บข้อมูลเพิ่มเติม (npm, Bower ฯลฯ )

หากคุณต้องการชำระเงินสำหรับเวอร์ชันสำหรับองค์กรคุณยังสามารถใช้ LDAP สำหรับการตรวจสอบสิทธิ์และความสามารถในการกรองฟีดตามชื่อ / ใบอนุญาตจากฟีดที่เชื่อมต่อ (เช่นฟีดอย่างเป็นทางการของ NuGet)


2

ใช่คุณสามารถมีฟีดในเครื่องได้ มันตายง่ายที่จะตั้งขึ้นมาดูที่นี่

MyGetเป็นที่นิยมในการโฮสต์ฟีดส่วนตัว ไม่ฟรี แต่ลองดูราคาของพวกเขาและอาจจะเหมาะกับคุณ!

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