2017-09-07 24 views
7

Có cách nào để dễ dàng chuyển đổi mục tiêu thư viện lớp .NET Core 2.0 sang .NET Standard không?Chuyển đổi các thư viện lớp .NET Core 2.0 sang .NET Standard

Nếu tôi hiểu chính xác, nếu bạn muốn tối đa hóa khả năng sử dụng lại thư viện lớp trong các dự án nhắm mục tiêu các khuôn khổ .NET khác nhau, ví dụ: .NET Framework, .NET Core, Xamarin, vv, đó là một ý tưởng tốt hơn để nhắm mục tiêu .NET Standard - miễn là tất cả các API bắt buộc có sẵn trong phiên bản .NET Standard sẽ được nhắm mục tiêu.

Đây là lý do tại sao tôi muốn chuyển đổi thư viện lớp của mình từ .NET Core 2.0 thành .NET Standard 1.6 hoặc .NET Standard 2.0.

Trả lời

9

Trong hồ sơ dự án, bạn có thể trỏ biên dịch đích đến netstandard với phiên bản chính xác.

Ví dụ về Proj.csproj:

<Project Sdk="Microsoft.NET.Sdk"> 
    <PropertyGroup> 
    <TargetFramework>netstandard1.6</TargetFramework> 
    </PropertyGroup> 
</Project> 
... 

Microsoft cung cấp tốt documentation về nhắm mục tiêu các loại.

Dotnet Standard không phải là khung hoặc thư viện, đó là tập hợp trừu tượng các hướng dẫn: chức năng nào cần có System.Array, String, List, v.v. Hiện tại, có different implementations: .NET Framework, .NET Core, Mono, Xamarin, Windows Phone. Điều đó có nghĩa là các triển khai khác nhau có thể biên dịch lại và sử dụng lại thư viện của bạn nhắm mục tiêu netstandard. Đây là một lựa chọn rất tốt cho gói NuGet.

Bạn có thể chơi với các phiên bản và tìm bộ chức năng tối thiểu cần thiết cho thư viện của mình. Mỗi tiêu chuẩn Dotnet mở rộng chức năng của phiên bản trước. Do đó, phiên bản được nhắm mục tiêu càng ít được chọn càng nhiều nền tảng mà thư viện của bạn sẽ hỗ trợ.

7

Bạn có thể chỉnh sửa các tập tin csproj (có thể được thực hiện bên trong VS bằng cách kích chuột phải vào file dự án) và thay đổi

<TargetFramework>netcoreapp2.0</TargetFramework> 

để

<TargetFramework>netstandard2.0</TargetFramework> 
Các vấn đề liên quan