ฉันจะไม่แนะนำให้เพิ่ม ValueTupleเป็นการอ้างอิงแพ็คเกจกับโครงการ. net Framework ตามที่คุณทราบแอสเซมบลีนี้พร้อมใช้งานจาก 4.7 .NET Framework
อาจมีบางสถานการณ์เมื่อโครงการของคุณพยายามที่จะรวมค่าใช้จ่ายทั้งหมด ValueTupleจากโฟลเดอร์. NET Framework แทนที่จะเป็นโฟลเดอร์แพคเกจและอาจทำให้แอสเซมบลีบางอย่างไม่พบข้อผิดพลาด
เรามีปัญหานี้ใน บริษัท วันนี้ เรามีวิธีแก้ปัญหาด้วย 2 โครงการ (ฉันเน้นเรื่องนั้นมาก):
Libรวมถึง ValueTuple และWebกำลังใช้งานLibอยู่ มันกลับกลายเป็นว่าโดยไม่ทราบด้วยเหตุผลบางอย่างWebเมื่อพยายามที่จะแก้ปัญหาเส้นทางที่จะValueTupleได้มีHintPathลงในไดเรกทอรี .NET Framework และได้รับการรุ่นไม่ถูกต้อง แอปพลิเคชันของเราหยุดทำงานเนื่องจากสาเหตุดังกล่าว ValueTupleไม่ได้กำหนดไว้ใน.csprojการWebมิได้HintPathสำหรับการชุมนุมว่า ปัญหานั้นแปลกมาก โดยปกติจะคัดลอกแอสเซมบลีจากโฟลเดอร์แพคเกจ เวลานี้ไม่ปกติ
สำหรับฉันมันเป็นความเสี่ยงเสมอที่จะเพิ่มSystem.*การอ้างอิงแพ็คเกจ พวกเขามักจะชอบระเบิดเวลา พวกมันเริ่มต้นได้ดีและพวกมันสามารถระเบิดในหน้าของคุณในช่วงเวลาที่เลวร้ายที่สุด กฎง่ายๆของฉัน: อย่าใช้System.*แพคเกจ Nuget สำหรับ. NET Frameworkหากไม่จำเป็นต้องใช้พวกเขาจริงๆ
เราแก้ไขปัญหาของเราโดยการเพิ่มValueTupleลงใน.csprojไฟล์ภายในWebโครงการด้วยตนเอง