Vâng, porting là có thể. Tôi sẽ đề nghị tạo một dự án mới trong giải pháp này (hầu hết các giải pháp của git này đã thêm hỗ trợ UWP, như tôi đã thấy) và làm lại nhiều thứ nhất. Trên một số dự án sử dụng mã nền tảng cụ thể, việc chuyển đổi này có thể không hoạt động vì một số API đã thay đổi từ WP8 thành UWP - như bạn có thể đã biết.
Sau thủ tục này, tôi vẫn gặp sự cố - tôi không có tệp .appxmanifest đang hoạt động, vì vậy tôi không thể tạo tệp .pfx. Điều này sẽ cảnh báo bạn thiếu tệp chứng nhận.
Tôi không chắc chắn tất cả các bước là cần thiết. Tôi rời khỏi đây như bài tập về nhà;)
Dù sao, ở đây tôi chỉ cho bạn các bước để cảng TodoREST dự án để UWP:
- iOS Dỡ và dự án Droid sẽ làm cho điều này dễ dàng hơn
- Gỡ bỏ tất cả các gói NuGet từ Dự án di động và WinPhone81
- Thay đổi cấu hình lớp di động thành Profile111 (bỏ chọn WP8 Silverlight làm mục tiêu)
- Bây giờ bạn có thể cài đặt lại Xamarin.Forms và Newtonsoft.Json trên dự án di động (gỡ cài đặt là cần thiết để thay đổi cấu hình) ause nó nêu ra một số lỗi ở đây)
- Remove app.config từ dự án WinPhone81
Thêm một tập tin project.json
cho dự án WinPhone81 và đưa vào nội dung sau đây:
{
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0",
"Xamarin.Forms": "2.0.0.6482"
},
"frameworks": {
"uap10.0": { }
},
"runtimes": {
"win10-arm": { },
"win10-arm-aot": { },
"win10-x86": { },
"win10-x86-aot": { },
"win10-x64": { },
"win10-x64-aot": { }
}
}
Lưu tất cả mọi thứ và WinPhone81 gần dự án
Trong trình khám phá tệp, hãy chuyển đến thư mục và chỉnh sửa Package.appxmanifest
khoán trọn gói Tag bằng cách làm theo:
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:m3="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="m3 mp">
Remove ... và thêm sau thay vì:
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0"/>
</Dependencies>
Sửa TodoREST.WinPhone81.csproj:
Trong <PropertyGroup>
đầu tiên thay thế <TargetPlatformVersion>
của thành viên này:
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
<TargetPlatformVersion>10.0.10586.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.10586.0</TargetPlatformMinVersion>
Thay đổi ProjectTypeGuids
để
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Trên mỗi PropertyGroup
với Condition=...
thay WINDOWS_PHONE_APP
trong DefineConstants bởi WINDOWS_UAP
- Lưu
- dự án Nạp lại trong Visual Studio
- Sửa MainPage.xaml và thay đổi
<forms:WindowsPhonePage
để <forms:WindowsPage
và tạo không gian tên để using:Xamarin.Forms.Platform.UWP
(từ .WinRT
)
- Ở đây tôi đã phải khởi động lại VS2015 cho bất kỳ lý do như nó không nhận thấy project.json
- Bắt đầu dự án và gỡ lỗi!
Tôi hy vọng điều này sẽ trả lời câu hỏi của bạn.
Bạn có muốn thêm UWP (Nền tảng Windows phổ quát) không? Hướng dẫn này sẽ giúp bạn bắt đầu: https://developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/. Có vẻ như hướng dẫn đó là Xamarin Forms, vì vậy nó sẽ hoạt động tốt với UWP nếu bạn sử dụng phiên bản Xamarin mới đây. – dylansturg
Tôi biết đã lâu rồi tôi mới hỏi câu hỏi này, nhưng tôi đã quay trở lại vấn đề này và nó vẫn chưa được giải quyết. Nhận xét của bạn không chính xác những gì tôi yêu cầu, bạn có thể không hiểu chính xác tôi. Tôi đã cập nhật câu hỏi với một số chi tiết khác. – Piotrek
Bạn có sử dụng Visual Studio 2013 hoặc 2015 không? – NineBerry