2013-03-15 29 views
5

Microsoft đã cập nhật nhắm mục tiêu async/await cho .net 4.0 và bây giờ đề xuất sử dụng thư viện Microsoft.Bcl.Async có sẵn trên nuget.Async Đang chờ nhắm mục tiêu các yêu cầu triển khai 4.0

Trong ghi chú phát hành, nó nêu rõ .net 4 với KB 2468871 là bắt buộc.

  1. KB2468871 là yêu cầu xây dựng hoặc yêu cầu triển khai?
  2. Khía cạnh nào của KB2468871 làm cho nó bắt buộc?
+0

Tôi đoán đó là yêu cầu triển khai. Lưu ý rằng ASP.NET * yêu cầu * .NET 4.5; sự hỗ trợ .NET 4.0 chỉ dành cho các ứng dụng dành cho máy tính để bàn. –

+0

@StephenCleary, vâng, đây là ứng dụng dành cho máy tính để bàn nơi hỗ trợ XP vẫn là yêu cầu. – Dan

+3

Sau khi đọc qua các ghi chú phát hành, tôi đoán rằng nó cần thiết vì Tính năng 5: hỗ trợ cho PCL. –

Trả lời

2

Trích dẫn từ http://support.microsoft.com/kb/2468871/en-us

Tính năng 5 thay đổi để hỗ trợ các thư viện di động. Những thay đổi này bao gồm cập nhật API và sửa đổi liên kết. Bản cập nhật này cho phép CLR liên kết thành công với các thư viện di động để một DLL có thể chạy trên .NET Framework 4, trên Silverlight, trên Xbox hoặc trên Windows Phone. Bản cập nhật này thêm API Silverlight công khai vào .NET Framework 4 ở cùng một vị trí. Các chữ ký API sẽ vẫn giữ nguyên trên nền tảng. Tất cả các sửa đổi là 100% tương thích và sẽ không vi phạm bất kỳ mã hiện có nào.

Nó chỉ ra rằng không kb này được cài đặt Microsoft.Bcl treo (nó cố gắng liên kết với Silverlight System.Core thư viện mà không phải là trên hệ thống)

+0

Được chấp nhận vì nó đã được đăng tải dưới dạng câu trả lời, nhưng Stephen Cleary đã trả lời câu hỏi này trong các câu hỏi bình luận. – Dan

0

Các ghi chú phát hành chi tiết:

khi nhắm mục tiêu bất kỳ trong những nền tảng sau đây (hoặc phiên bản cao hơn):

• .NET Framework 4.0 (with KB2468871) 

Vì vậy, có nghĩa là bạn đang 'nhắm mục tiêu' 4.0 w/KB2468871 như trong KB2468871 phải được triển khai trên máy tính đích để thư viện được hỗ trợ.

Không có chi tiết về những phần nào của KB2468871 là bắt buộc đối với Microsoft.Bcl.Async. Tôi khuyên bạn nên liên hệ với nhóm BCL, đăng lên blog hoặc liên hệ với chủ sở hữu gói Nuget để biết thêm chi tiết. Tôi không rõ ràng những gì hiểu biết phần nào của KB được yêu cầu sẽ tạo sự khác biệt ...

2

Cách duy nhất an toàn để sử dụng async/chờ đợi trong .net 4.0 hỗ trợ xp người dùng mà không cần cài đặt KB2468871 đang cài đặt async CTP v3 trong vs 2010 SP1, nuget microsoft bcl async và triển khai AsyncTaskMethodBuilder và AsyncVoidMethodBuilder riêng. (và loại bỏ tham chiếu async ctp dll)

Đó là cách duy nhất để thực hiện không đồng bộ CTP không đồng bộ trong .net4, so với 2010, không cài đặt so với 2012, net 4.5 hoặc KB2468871 S WORK LÀM VIỆC.

Bất kỳ người nào khác sẵn sàng sử dụng tính năng đồng bộ hóa trên .net4 ngoài đó sử dụng cách triển khai mới và bắc cầu mã async trong quá trình biên dịch, đó là lý do bạn cần cài đặt CTP không đồng bộ. , sửa đổi trình biên dịch csc để hỗ trợ nó.

Microsoft đã thay đổi sử dụng trình biên dịch loại trong c5 và 4.5 để tạo mã async, về cơ bản chúng có thể dễ dàng thực hiện cho .net4, nhưng thay vào đó chúng chọn buộc bất kỳ ai cài đặt so với năm 2012 và .net 4.5, cái gì đó là không thể chấp nhận cho các công ty cần hỗ trợ người dùng xp, bởi vì bạn sẽ không có cách nào để xem và sửa bất kỳ lỗi .net 4 nào đã được sửa trong .net 4.5.

Microsoft.Bcl.Async, AsyncTargetingPack, AsyncBridge tất cả đều KHÔNG HOẠT ĐỘNG nếu không có .net 4.5 được cài đặt hoặc KB2468871 cho .net 4.0.

Chúng S ALL TẤT CẢ VIỆC nếu bạn thực hiện AsyncTaskMethodBuilder và AsyncVoidMethodBuilder trên của riêng bạn, bạn thậm chí có thể sao chép/dán nó thực hiện từ async ctp v3 với những thay đổi nhỏ và nó sẽ chỉ hoạt động.

Vì vậy, nếu bạn thực sự quan tâm bởi yêu cầu triển khai và những thứ khác liên quan đến việc hỗ trợ người dùng xp, tôi khuyên bạn nên làm là tôi mô tả.

+0

Cảm ơn. đăng cùng một câu trả lời của tôi [ở đây] (http://stackoverflow.com/questions/16062590/async-ctp-not-working-in-vs-2010-sp1/16228189#16228189), [tại đây] (http: // stackoverflow.com/questions/16074401/asynchronous-programming-with-async-and-await/16097562#16097562) và [ở đây] (http://stackoverflow.com/questions/15338907/where-can-i-find-a -tpl-dataflow-version-for-4-0/15972581 # 15972581). Tất cả đã giảm giá –

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