ตอนนี้ฉันจัดแพ็คเกจบิวด์รีลีสด้วย Nuget สำหรับบิวด์อย่างเป็นทางการไปยัง nuget.org แต่ฉันแพ็กเกจการดีบักบิวด์ด้วย Nuget สำหรับซอร์สสัญลักษณ์ที่ส่งไปยัง Symbolource.org
แก้ไข: (Jon Skeet มีอคติจากการพัฒนา Noda Time)
ตอนนี้ NuGet รองรับการส่งไปยังทั้งแกลเลอรีNuGet และ Symbolource.org (หรือเซิร์ฟเวอร์ที่คล้ายกัน) ตามที่บันทึกไว้ น่าเสียดายที่มีข้อกำหนดที่ขัดแย้งกันสองประการที่นี่:
- เมื่อใช้ไลบรารีโดยไม่จำเป็นต้องมีการดีบักใด ๆ คุณต้องการสร้างรุ่น นั่นคือสิ่งที่รุ่นสร้างมีไว้สำหรับหลังจากทั้งหมด
- เมื่อทำการดีบักลงในไลบรารีเพื่อวัตถุประสงค์ในการวินิจฉัยคุณต้องการสร้างดีบักโดยปิดใช้งานการเพิ่มประสิทธิภาพที่เหมาะสมทั้งหมด นั่นคือสิ่งที่สร้างดีบักมีไว้สำหรับหลังจากทั้งหมด
นั่นจะดี แต่ NuGet ไม่ (เท่าที่ฉันบอกได้) อนุญาตให้เผยแพร่ทั้งรุ่นและรุ่นแก้ไขข้อบกพร่องในรูปแบบที่เป็นประโยชน์ในแพ็คเกจเดียวกัน
ดังนั้นตัวเลือกคือ:
- แจกจ่ายบิวด์การแก้ไขข้อบกพร่องให้ทุกคน (ดังที่แสดงในตัวอย่างในเอกสาร) และใช้งานกับ Hit ขนาดและประสิทธิภาพใด ๆ
- แจกจ่ายรุ่นสร้างให้กับทุกคนและใช้ชีวิตด้วยประสบการณ์การดีบักที่บกพร่องเล็กน้อย
- ใช้นโยบายการแจกจ่ายที่ซับซ้อนมากโดยอาจให้แพ็คเกจรีลีสและดีบักแยกต่างหาก
สองคนแรกเดือดลงไปถึงผลของความแตกต่างระหว่างการดีบักและการสร้างรุ่น ... แม้ว่าจะเป็นที่น่าสังเกตว่ายังมีความแตกต่างอย่างมากระหว่างการต้องการก้าวเข้าสู่รหัสของไลบรารีเพราะคุณต้องการตรวจสอบพฤติกรรมบางอย่างและต้องการ เพื่อดีบักโค้ดของไลบรารีเพราะคุณเชื่อว่าคุณพบข้อบกพร่อง ในกรณีที่สองอาจเป็นการดีกว่าที่จะรับโค้ดของไลบรารีเป็นโซลูชัน Visual Studioและดีบักด้วยวิธีนี้ดังนั้นฉันจึงไม่ต้องใส่ใจกับสถานการณ์นั้นมากเกินไป
สิ่งล่อใจของฉันคือการเพียงให้กับการเปิดตัวสร้างที่มีการคาดการณ์ว่าค่อนข้างไม่กี่คนที่จะต้องแก้ปัญหาและเป็นคนที่ทำจะไม่ได้รับผลกระทบมากจากการเพิ่มประสิทธิภาพในการปล่อยสร้าง (คอมไพลเลอร์ JIT จะทำการปรับให้เหมาะสมเป็นส่วนใหญ่)
มีทางเลือกอื่นที่เราไม่ได้พิจารณาหรือไม่? มีข้อควรพิจารณาอื่น ๆ ที่ช่วยให้สมดุลหรือไม่? การผลักดันแพ็คเกจ NuGet ไปยัง SymbolSource ใหม่เพียงพอที่ "แนวทางปฏิบัติที่ดีที่สุด" ยังไม่ได้ถูกกำหนดขึ้นจริงหรือ?
nuget pack ... -Symbol
และผลักดันแพ็คเกจที่สร้างขึ้น ...