Tôi có đoạn code sau đây trong một tập tin csproj
:Sự khác nhau giữa <TargetFramework> và <RuntimeFrameworkVersion> là gì?
<TargetFramework>netcoreapp1.0</TargetFramework>
Trong quản lý gói NuGet, nó nói rằng tôi có phiên bản 1.0.5 Microsoft.NETCore.App
Bây giờ cho phép nói tôi có đoạn code sau trong cùng một tập tin csproj
:
<TargetFramework>netcoreapp1.0</TargetFramework>
<RuntimeFrameworkVersion>1.1.4</RuntimeFrameworkVersion>
Các NuGet quản lý gói bây giờ sẽ nói rằng tôi có phiên bản Microsoft.NETCore.App 1.1.4
tôi về cơ bản cố gắng sử dụng các khuôn khổ mới nhất trước khi .NETCore 2.0 (có một số vấn đề EF khi tôi chuyển đổi) sẽ là .NETCore 1.1.4 nhưng thuộc tính nhiều khung trong csproj
khiến tôi không chắc chắn nên sử dụng thẻ nào. Tôi không thể tìm thấy bất kỳ tài nguyên nào phân biệt rõ ràng sự khác biệt giữa hai tài nguyên.
Đây là một câu trả lời tuyệt vời! Làm tốt lắm thưa ngài. –
Vì vậy, hậu quả thực tế của việc có cả hai thuộc tính như trong mẫu mã của tôi ở trên là gì? Thẻ 'RuntimeFrameworkVersion' rõ ràng ra lệnh với NuGet thấy, ưu tiên hơn thẻ' TargetFramework'. Tuy nhiên, nếu tôi bỏ qua thẻ 'TargetFramework', dự án không thể xây dựng với * Giá trị TargetFramework '' không được nhận dạng. Nó có thể sai chính tả. Nếu không, thì các thuộc tính TargetFrameworkIdentifier và/hoặc TargetFrameworkVersion phải được xác định rõ ràng. * – 8protons
Khung mục tiêu chỉ định slice của gói được sử dụng để biên dịch. Vì vậy, nếu bạn viết 'foobar1.0', nó sẽ không hoạt động. Ngoài ra, 'RuntimeFrameworkVersion' là đặc trưng cho khung mục tiêu' netcoreapp' –