2015-12-07 28 views
26

Tôi có chút bối rối về roslyn.Làm thế nào để sử dụng trình biên dịch roslyn C# với studio trực quan 2015?

Những gì tôi đã thực hiện: Tôi đã cài đặt phiên bản cộng đồng năm 2015 và tải xuống trong extensibilty> tải xuống nền tảng trình biên dịch sdk.

Vì vậy, tôi đã tạo một ứng dụng bảng điều khiển đơn giản: xin chào ví dụ về thế giới.

Bây giờ tôi hy vọng sẽ chọn trình biên dịch C# giữa phiên bản mặc định vs2015 và roslyn ... nhưng tôi không tìm thấy tùy chọn như vậy. Vì vậy, câu hỏi đầu tiên của tôi là: làm thế nào để chọn phiên bản của trình biên dịch C#?

Thứ hai tôi đã tải xuống master-roslyn và tôi xây dựng, sau đó tôi tìm thấy csc.exe, cũng những điều kỳ lạ là nếu tôi lauch exe Tôi nhận được phiên bản trình biên dịch C# 42.42.42.42. ???? Đúng? Sau đó tôi đã làm theo một số hướng dẫn, nhưng tất cả các mục đích tôi: để tải một nguồn từ tập tin văn bản hoặc chuỗi vars và phân tích hoặc thay đổi cây cú pháp, sau đó biên dịch thành var.

Vâng vào thời điểm này tôi đang bối rối ... Vì vậy:

Roslyn chính xác là gì? Một trình biên dịch meta? Điều này có nghĩa là tôi có thể thay đổi mã của mình khi chạy giống như Reflection? Thứ hai: làm thế nào có thể biên dịch với vs2015 với csc mặc định hoặc chọn roslyn? thứ ba: Nếu tôi xây dựng một phiên bản tùy chỉnh của roslyn Tôi có thể biên dịch nguồn của mình bằng cách sử dụng Vs2015 như thế nào? Điều gì sẽ biết nếu csc.exe là roslyn? Không có sự trợ giúp hoặc dòng lệnh in tên mã.

Cảm ơn

Trả lời

36

Vì vậy, có vẻ như bạn có một vài câu hỏi:

Roslyn là gì?

Roslyn là trình biên dịch mặc định mới bên trong Visual Studio 2015. Nếu bạn đang xây dựng và chạy các ứng dụng trong Visual Studio 2015, chúng đang được biên dịch bằng trình biên dịch Roslyn. Bạn sẽ tận dụng tất cả các tính năng C# 6 mới có sẵn trong trình biên dịch mới.

Nếu bạn đang sử dụng VS2015, Roslyn đã thay thế các trình biên dịch cũ hoàn toàn và như xa như tôi biết bạn không thể sử dụng trình biên dịch cũ trong VS 2015.

Roslyn cũng là một nền tảng cho phép bạn xây dựng các chương trình có thể sửa đổi, giải thích và hiểu các chương trình khác. Nó không thực sự có nghĩa là để cho bạn viết mã mà sửa đổi chính nó (mặc dù đó là có thể có thể đến một mức độ).

Các trường hợp sử dụng phổ biến cho các Roslyn là:

  1. Building Code Analyzers cung cấp lỗi và cảnh báo trong Visual Studio.
  2. Tiện ích mở rộng tòa nhà cho Visual Studio hiểu mã nguồn.
  3. Tạo các công cụ khác hiểu hoặc chạy mã nguồn. Ví dụ: ScriptCS - Tập lệnh với mã C#.

Để sử dụng Roslyn cho những mục đích này, bạn kéo các gói Microsoft.CodeAnalysis từ NuGet. Bạn có thể sử dụng các gói này để phân tích mã, phân tích cây cú pháp, phân tích biểu tượng hoặc biên dịch mã và phát ra IL.

Nếu bạn quan tâm tìm hiểu thêm về Roslyn, tôi đã bắt đầu một loạt gọi Learn Roslyn Now mà bạn có thể quan tâm.

Tôi có thể thay thế các trình biên dịch?

Có thể, nhưng tôi không tin rằng đây là một ý tưởng tuyệt vời ngoài những thay đổi thử nghiệm mà bạn muốn đóng góp lại cho Roslyn. Bạn có thể kéo xuống Roslyn từ GitHub và theo dõi these instructions để xây dựng và chạy Roslyn từ bên trong Visual Studio.

Nếu bạn làm theo các hướng dẫn đó, bạn sẽ có thể chạy dự án Roslyn với F5. Nó sẽ bắt đầu một thể hiện mới của Visual Studio đang sử dụng trình biên dịch tùy biến của bạn. Đây là cách mọi người bên ngoài Microsoft sẽ đóng góp các tính năng cho trình biên dịch từ bây giờ. (Trước đây bạn không thể triển khai trình biên dịch tùy chỉnh của bạn cho Visual Studio nhưng họ đã sửa lỗi đó trong Visual Studio Update 1).

+0

vâng tôi thấy kênh utube ur, rất tốt! Xin vui lòng tiếp tục với ví dụ và video ur về roslyn và sử dụng pratical ... cảm ơn :), nhưng bạn biết tại sao phiên bản master có 42.42.42.42 như phiên bản in? Có lý do nào tốt không? thx – LXG

+1

Đây là liên kết đến kênh youtube của JoshVarty trên Roslyn. Rất thú vị thực sự và những nỗ lực tuyệt vời của anh ta. https://www.youtube.com/watch?v=wXXHd8gYqVg&list=PLxk7xaZWBdUT23QfaQTCJDG6Q1xx6uHdG – RBT

+0

* "bạn kéo xuống các gói Microsoft.CodeAnalysis từ NuGet." * Vì vậy, đây là điều làm tôi bối rối. Tôi nghĩ rằng tất cả những gì được cho là đã được bao gồm với VS 2015, nhưng tôi đoán nó không phải. –

9

Roslyn là hai điều:

  1. Một API cho phép bạn xem "trình biên dịch mọi thứ" như cây cú pháp và biểu tượng.
  2. Một csc.exe mới được triển khai trên đỉnh số 1.

Nếu bạn muốn chắc thay đổi để trình biên dịch và sử dụng để xây dựng, hãy nhìn vào these instructions nếu bạn chưa có. Có một vài cách khác nhau bạn có thể tạo phiên bản csc.exe của riêng bạn và sau đó sử dụng nó để xây dựng một cái gì đó. Nhưng không có hộp thoại "lựa chọn" như bạn đang tìm kiếm.

1

Roslyn là trình biên dịch mặc định của Visual Studio 2015. Vì vậy, nếu bạn cài đặt VS2015, bạn đã sử dụng Roslyn.

Roslyn là tên mã cho .NET Compiler Platform và cung cấp trình biên dịch C# và Visual Basic mã nguồn mở. Dự án có sẵn trên github.

Các vấn đề liên quan