(Câu hỏi phụ đề: Tài nguyên không được hỗ trợ trong .netstandard 1.3
hoặc tệp dự án của tôi chỉ rối tung?)Tại sao tôi không thể sử dụng tài nguyên được nhúng (resx) khi nhắm mục tiêu .netstandard 1.3?
Tôi vừa tạo một thư viện lớp mẫu di động trong Visual Studio 2015 Update 3 và thêm tệp tài nguyên mẫu. Ban đầu, tệp project.json
trông giống như sau:
{
"supports": {
"net46.app": {},
"uwp.10.0.app": {},
"dnxcore50.app": {}
},
"dependencies": {
"Microsoft.NETCore": "5.0.0",
"Microsoft.NETCore.Portable.Compatibility": "1.0.0"
},
"frameworks": {
"dotnet": {
"imports": "portable-net452+win81"
}
}
}
Phạt tiền: Không có lỗi biên dịch!
Sau đó, tôi đã sử dụng thuộc tính dự án để nhắm mục tiêu .NETStandard 1.3
.
Bây giờ project.json
trông như thế này:
{
"supports": {},
"dependencies": {
"Microsoft.NETCore.Portable.Compatibility": "1.0.1",
"NETStandard.Library": "1.6.0"
},
"frameworks": {
"netstandard1.3": {}
}
}
Bây giờ tôi nhận được sau xây dựng lỗi - có nghĩa là về cơ bản việc xây dựng hành động EmbeddedRessource
không được hỗ trợ:
Tôi thực sự không có chuyên gia với project.json
, nhưng đối với tôi, mọi thứ có vẻ không nhất quán - và tôi không có ý tưởng gì về vấn đề này.
- trong
project.json
đầu tiên: nếu tôi hỗ trợnet46
, tại sao là nó nhập khẩunet452
? - trong số
project.json
thứ hai: nếu tôi sử dụngnetstandard1.3
, tại sao phụ thuộc vào thư viện trong phiên bản1.6
? - và cuối cùng,
.NETPortable, Version=v5.0
là gì? Việc đổi tên.NET Core
đã diễn ra vào đầu năm nay - tại sao chúng tôi vẫn đang tham chiếu phiên bản5.0
? Thậm chí MSDN không biết<TargetFrameworkVersion>5.0</TargetFrameworkVersion>
được quy định tại cáccsproj
Đối với tôi, điều này có vẻ như netstandard
không chỉ về thư viện có sẵn, dụng cụ dường như có liên quan, quá. Nhưng điều đó không giải thích, tại sao nó hoạt động cho dnxcore50
.
tôi nghi ngờ rằng điều này có cái gì để làm với thực tế là cửa sổ phổ cập các ứng dụng không sử dụng 'resx 'tệp. Nhưng: các ứng dụng Windows phổ biến tương thích với 'netstandard 1.4' và cao hơn ... – ventiseis
bạn nói đúng về phần resx, nhưng UWP thực sự tương thích với 'netstandard1.4' và thấp hơn không cao hơn. – nawfal
Bạn nói đúng, tôi đã xem [ma trận] (https://github.com/dotnet/corefx/blob/master/Documentation/architecture/net-platform-standard.md) và hiểu nhầm các mũi tên. Nhưng nó thậm chí còn được viết ở đó: _Nếu một thư viện nhắm mục tiêu .NET Platform Standard phiên bản 1.3, nó chỉ có thể chạy trên .NET Framework 4.6 trở lên, .NET Core, Nền tảng Windows Phổ 10 (UWP) và nền tảng Mono/Xamarin._ – ventiseis