2017-06-23 40 views
5

Tôi đã tạo ra một gói phần mềm thư viện lớp .net lõi và tải lên nó để nuget.orgtại sao .netstandard 1.4 là NetStandard.Library 1.6?

Trong phần phụ thuộc là nói rằng dự án của tôi phụ thuộc vào .NetStandard 1,4, có nghĩa là cao hơn NetStandard.Library hơn 1,6

Tại sao có sự nhầm lẫn không hợp lý trong số phiên bản? Không. NetStandard và NetStandard.Library được cho là giống nhau? Hay chúng là những thứ khác nhau?

đây là csproj tôi

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
    <TargetFramework>netstandard1.4</TargetFramework> 
    <PackageVersion>2.0.1</PackageVersion> 
    <AssemblyName>currency</AssemblyName> 
    </PropertyGroup> 
</Project> 

và liên kết để dự án của tôi:

https://www.nuget.org/packages/currency/

+0

.NET Standard chỉ là một bộ API trên giấy, trong khi Thư viện chuẩn .NET là việc triển khai thực tế API đó. Vì SDK sẽ giải quyết phiên bản .NET Standard Library cho bạn, đừng bận tâm nhiều. –

Trả lời

5

Tôi đã tìm thấy một trang thú vị về .NETStandard.Library:

What is the .NETStandard.Library metapackage?

Trên trang này tuổi tác giả nói như sau:

Vì vậy, ngay cả khi dự án của bạn đang nhắm mục tiêu .NET Standard phiên bản 1.3 (hoặc đa nhắm mục tiêu), bạn vẫn có thể sử dụng phiên bản gói NETStandard.Library mới nhất (1.6.1 tại thời điểm đó viết về). Gói chính nó được phiên bản chủ yếu bởi vì nó cũng chứa nhiều công cụ hỗ trợ khác nhau như danh sách các phiên bản .NET Standard.


Trong tài liệu của Microsoft, tôi đã tìm thấy các thông tin sau về câu hỏi của bạn:

Nó có vẻ lạ để nhắm mục tiêu netstandard1.3 nhưng sử dụng phiên bản 1.6.0 của NETStandard. Thư viện. Nó là một trường hợp sử dụng hợp lệ, vì metapackage duy trì sự hỗ trợ cho các phiên bản netstandard cũ hơn. Nó có thể là trường hợp bạn đã tiêu chuẩn hóa trên phiên bản 1.6.0 của siêu vật liệu và sử dụng nó cho tất cả các thư viện của bạn, nhắm mục tiêu một loạt các phiên bản netstandard. Với cách tiếp cận này, bạn chỉ cần khôi phục NETStandard.Library 1.6.0 và không phải phiên bản cũ hơn.

Link: Look at .NetStandard

Tôi nghĩ rằng, nó sẽ không bao giờ sử dụng phiên bản mới nhất của .NETStandard.Library, bởi vì nó là tương thích với các phiên bản cũ của .NETStandard và nó chỉ là một siêu gói với sự tham khảo và thiết lập các API .Net chuẩn. Vì vậy, nó không phải là một vấn đề, nếu gói của bạn sử dụng .NETStandard.Library phiên bản 1.6.1

Lưu ý: Nếu bạn sử dụng .NETStandard 2.0 và bạn sử dụng .NETStandard.Library 1.6.1, nó không thể công việc!


Cập nhật: Giống như svick đề cập đến trong các ý kiến ​​của câu trả lời này, phiên bản tối thiểu của .NETStandard.Library là phiên bản 1.6.0!

+0

Bài đăng của bạn có vẻ như bạn * có thể * quyết định sử dụng phiên bản 'NETStandard.Library' 1.3.Nhưng bạn không thể, phiên bản đó không tồn tại, chỉ có 1.6.0+. – svick

+0

@svick cảm ơn bạn, tôi đã cập nhật câu trả lời của mình. –

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