วิธีการใช้ C # 7 กับ Visual Studio 2015


146

Visual Studio 2017 (15.x) รองรับ C # 7 แต่สิ่งที่เกี่ยวกับ Visual Studio 2015 (14.x)

ฉันจะใช้ C # 7 กับมันได้อย่างไร


2
อ้างอิงลิงค์นี้: strathweb.com/2016/03/…
Sunil Kumar

8
@SunilKumar: นั่นเปิดใช้งานพวกเขาใน VS 15 (ซึ่งคือ VS 2017) ไม่ได้พูดถึง VS 2015 (ซึ่งคือ VS 14) ทุกที่
Jon Skeet

คำตอบ:


162

คุณสามารถแทนที่คอมไพเลอร์ที่จัดส่งด้วย Visual Studio สำหรับรุ่นที่เปิดใช้งาน C # 7 โดยการติดตั้งแพคเกจ Nuget Microsoft.Net.Compilers :

การอ้างอิงแพ็คเกจนี้จะทำให้โครงการสร้างขึ้นโดยใช้คอมไพเลอร์รุ่น C # และ Visual Basic เฉพาะที่อยู่ในแพ็คเกจซึ่งต่างจากรุ่นที่ติดตั้งระบบใด ๆ

ไม่มีข้อบ่งชี้ว่าฉันสามารถเห็นบนหน้าแพ็คเกจว่าสนับสนุนอย่างเป็นทางการใน Visual Studio 2015 หรือไม่การทดสอบที่ไม่ละเอียดของฉันบ่งบอกว่ามันใช้งานได้ แต่ไม่เจ็บปวด - รหัสคอมไพล์ C # 7 แต่ขีดเส้นใต้ด้วยสีแดง บรรทัด squiggly ซึ่งบ่งชี้ข้อผิดพลาดทางไวยากรณ์: ภาพหน้าจอโปรดทราบว่าคุณจะต้องติดตั้งแพคเกจ Nuget System.ValueTupleเพื่อใช้คุณสมบัติ tuples ค่า C # 7 ใหม่


9
ในกรณีนั้นจะเป็นการดีกว่าถ้าใช้ VIsual Studio Code หรือเพียงแค่ติดตั้งชุมชน Visual Studio 2017
Panagiotis Kanavos

3
นี่เป็นสิ่งที่ดีที่จะรู้ ดังนั้นคุณสามารถเปลี่ยนช้าบางโครงการเป็น VS2017 โดยที่รู้ว่าในกรณีฉุกเฉินนักพัฒนารายอื่นสามารถทำงานกับรหัสของคุณ
ecth

10
หมายเหตุขณะที่ฉันเห็นด้วยกับทฤษฎีกับ @PanagiotisKanavos หากพนักงานของคุณใน บริษัท ขนาดกลางหรือขนาดใหญ่ VS2017 Community Edition มีแนวโน้มว่าไม่ถูกต้องที่จะใช้เป็นผู้รับใบอนุญาต ฉันเชื่อว่ารหัส VS เป็นจริง FOSS
Chris Marisic

6
ฉันติดตั้ง Microsoft.Net.Compilers nuget ล่าสุดลงใน Xamarin.Forms UWP, Windows 8.1 และ Windows Phone 8.1 ของโครงการรวมถึง System.ValueTuple nuget ล่าสุด (รวมถึงการแก้ไขล่าสุดของระบบอื่น ๆ ทั้งหมด * series nugets) . ทุกอย่างดูเหมือนจะทำงานได้ดีในการสร้างและรันไทม์ (ฉันไม่ได้ลองซอกทุกเรื่องในชุดคุณลักษณะของโปรแกรมดีบั๊ก)
optikos

13
VS2015.3, การคอมไพล์สำหรับ. NET 4.7.1: Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above- ฉันจำเป็นต้องใช้เวอร์ชั่นนี้: nuget.org/packages/Microsoft.Net.Compilers/2.4.0เพื่อสร้างมันจากนั้นก็ทำงานได้ดี :)
CAD bloke

5

ในกรณีของฉันการติดตั้งเพียงMicrosoft.Net.Compilersไม่ทำงาน ฉันต้องทำสิ่งต่อไปนี้แทน:

  1. ติดตั้งMicrosoft.CodeDom.Providers.DotNetCompilerPlatformสำหรับโครงการ ( เครื่องมือ => NuGet แพคเกจผู้จัดการ => จัดการแพคเกจ Nuget สำหรับโซลูชั่น ... ) และติดตั้งMicrosoft.CodeDom.Providers.DotNetCompilerPlatform
  2. ติดตั้งMicrosoft.Net.Compilersล่าสุดสำหรับโครงการ
  3. ติดตั้งแพ็คเกจ NuGet อื่น ๆ สำหรับคุณสมบัติ C # ล่าสุดที่คุณต้องการใช้ ในกรณีของฉันเป้าหมายของฉันคือใช้ Tuples ดังนั้นฉันจึงติดตั้งSystem.ValueTupleและทำงานได้ดี

แต่ยังคงทราบว่ารหัส C # ซึ่งไม่ทราบโดยคอมไพเลอร์เริ่มต้นของ Visual Studio 2015 จะยังคงมี squiggles สีแดงด้านล่าง

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