2016-04-09 34 views
7

Tôi đang cố gắng chạy một trong các mẫu from this site.Chuyển Xamarin ứng dụng Windows 8 sang Windows 10 SDK

Vấn đề là: dự án đã được tạo cho Windows 8. Khi tôi mở giải pháp trong Visual Studio, nó cho tôi biết rằng tôi cần cài đặt Windows 8 SDK để tiếp tục.

enter image description here

Tôi sử dụng hiện nay Windows 10 SDK và tôi sẽ không còn sử dụng SDK 8, vì vậy tôi không muốn cài đặt SDK này và sử dụng cái mới intead. Tôi có thể bằng cách nào đó chuyển dự án này sang ứng dụng Windows 10?

Làm thế nào nó trông giống như ngay bây giờ:

enter image description here

+2

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

+0

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

+0

Bạn có sử dụng Visual Studio 2013 hoặc 2015 không? – NineBerry

Trả lời

10

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.

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