Microsoft.csharp.dll trong .NET 4.0 là gì


164

DLL này được thêm vào theo mặc định trong các dự án Visual Studio 2010. Lắp ráp mới này được sử dụng để làm gì? Nó dường như không chứa nhiều sau khi nhìn vào nó bằng Reflector và Google dường như cũng không có nhiều điều để nói về nó.


Câu trả lời:


193

Nó được sử dụng khi / nếu bạn sử dụng dynamictừ khóa trong dự án của bạn. Việc lắp ráp có chứa chất kết dính thời gian chạy C #.

Trình biên dịch C # về cơ bản đã được trích xuất ra một thư viện để nó có thể phát ra, biên dịch và chạy mã cần thiết để hỗ trợ dynamictừ khóa. Lần đầu tiên bạn sử dụng dynamicmã của mình, tập hợp này (cũng như System.dll, System.Core.dll và System.Docate.dll) sẽ được tải vào AppDomain của bạn.


3
Bạn có quan tâm để suy đoán tại sao họ chọn tham chiếu nó theo mặc định? Tất cả chúng ta có nên sử dụng dynamicnhiều hơn hiện tại không (nghĩa là không bao giờ)?
mo.

4
@mo nó tương tự như cách họ tự động thêm using System.Linq;vào tất cả các tệp. Nó chỉ làm cho các tính năng ngôn ngữ mới hơn một chút liền mạch. Nếu bạn muốn sử dụng dynamic, nó chỉ hoạt động mà không cần nỗ lực từ phía bạn.
Matt Greer

16

Luôn luôn loại bỏ nó cho đến nay. Không có vấn đề nào.


13
Nếu dự án của bạn không sử dụng từ khóa động, tôi đoán sẽ ổn khi xóa dòng có <Reference Include="Microsoft.CSharp" /> trong tệp .csproj.
Cheeso

Cảm ơn TomTom và @Cheeso. Tôi đã cố gắng xây dựng một tệp (Khung được đặt thành 3.5) để sử dụng với Unity và loại bỏ nó khỏi tệp .csproj đã thực hiện thủ thuật này.
Wolfram

4
"Câu trả lời" này phù hợp hơn khi bình luận bên dưới câu hỏi. Trong khi nó gợi ý một cách giải quyết, nó không thực sự trả lời Câu hỏi lắp ráp mới để làm gì.
toonice
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.