Tầm quan trọng của trình biên dịch này là gì? Nó là phải có hoặc có thể làm mà không có? Dù sao thì mục đích của việc có một trình biên dịch khác là gì, hay đó chỉ là một dự án tương lai? Một tổng quan ngắn gọn sẽ được đánh giá cao.
Tầm quan trọng của trình biên dịch này là gì? Nó là phải có hoặc có thể làm mà không có? Dù sao thì mục đích của việc có một trình biên dịch khác là gì, hay đó chỉ là một dự án tương lai? Một tổng quan ngắn gọn sẽ được đánh giá cao.
Câu trả lời:
Điểm của gói Microsoft.Net.Compilers là các trình biên dịch được phân phối cùng với gói đó sẽ được sử dụng để biên dịch dự án của bạn, thay vì trình biên dịch đi kèm với .NET Framework hoặc với Visual Studio. Lợi ích trực tiếp thiết thực nhất là nó cho phép các dự án của bạn sử dụng các tính năng C # 6 và sau đó cho phép các dự án đó được xây dựng trên một hệ thống không được cài đặt trình biên dịch C # 6, chẳng hạn như trên một máy chủ tích hợp liên tục mà bạn không ' t muốn cài đặt Visual Studio 2015 đầy đủ.
Hiện tại, không có mục đích nào đối với Microsoft.Net.Compilers. Đây là gói NuGet không được dùng nữa và sẽ ngừng được sản xuất sau Visual Studio 16.5. Có một gói kế nhiệm có tên Microsoft.Net.Compilers.Toolset. Gói này có nhiều chức năng giống như Microsoft.Net.Compilers nhưng hoạt động với cả phiên bản .NET Desktop và .NET Core MSBuild.
Mặc dù vậy Microsoft.Net.Compilers.Toolset không dành cho mục đích tiêu dùng chung. Gói này phục vụ hai mục đích sử dụng cụ thể:
Gói này không dành cho khách hàng sử dụng lâu dài cho công trình của họ. Tôi hiểu rằng một số khách hàng chọn làm điều này nhưng việc sử dụng như vậy cũng không được hỗ trợ. Gói có thể và sẽ thường xuyên gây ra sự cố bằng cách sử dụng các phụ thuộc vào các phiên bản mới của MSBuild hoặc các nhiệm vụ / mục tiêu trong .NET SDK.
Thay vào đó, những khách hàng muốn sử dụng các phiên bản mới của trình biên dịch cho các bản dựng của họ được khuyến khích sử dụng một trong các bản phân phối chính thức của trình biên dịch:
Lưu ý : gói Microsoft.Net.Compilers chính thức được hỗ trợ như một phần của gói Microsoft.CodeDom.Providers.DotNetCompilerPlatform vài năm trước vì nó là một phần phụ thuộc. Bắt đầu từ phiên bản 2.0 mặc dù sự phụ thuộc vào Microsoft.Net.Compilers đã bị loại bỏ và bây giờ nó đứng như một gói hoàn toàn độc lập. Đồng thời, chúng tôi đã chuyển sang không dùng nữa Microsoft.Net.Compilers vì không còn bất kỳ trường hợp sử dụng rõ ràng nào cho nó nữa.
Điều này có nghĩa là một số khách hàng bất ngờ thấy mình có Microsoft.Net.Compilers trong tệp dự án của họ vì nó không bị xóa khi Microsoft.CodeDom.Providers.DotNetCompilerPlatform bỏ phần phụ thuộc. Lời khuyên cho những khách hàng như vậy là chỉ cần xóa tham chiếu đến gói. Nó không cần thiết nữa.
Đó là một gói cung cấp các trình biên dịch C # và Visual Basic mã nguồn mở với các API phân tích mã phong phú.
Bạn có thể tìm thấy tài liệu mở rộng trên github:
Như những người khác đã nói, nó chứa các trình biên dịch .NET cho C # và VB.NET.
Một khía cạnh thú vị của việc này là một gói là bạn có thể chỉ định một bản dựng cụ thể của trình biên dịch cho dự án của mình, bao gồm cả phiên bản chưa được xuất xưởng cùng với Visual Studio.
Chúng tôi sử dụng điều này trong https://github.com/dotnet/project-system , một thành phần mã nguồn mở của Visual Studio. Nó cho phép chúng tôi sử dụng các phiên bản phát hành trước của trình biên dịch cho các tính năng ngôn ngữ dogfood không được hỗ trợ bởi trình biên dịch đi kèm với VS.
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
trong v1.0.8 và dưới, do đó bạn có thể nhìn thấy nó vì lý do đó