2016-04-09 17 views
7

Próbuję uruchomić jedną z próbek from this site.Przenoszenie aplikacji Xamarin z systemu Windows 8 do systemu Windows 10 SDK

Problem polega na tym, że projekty zostały wykonane dla systemu Windows 8. Kiedy otwieram rozwiązanie w Visual Studio, mówi mi, że muszę zainstalować Windows 8 SDK, aby kontynuować.

enter image description here

używam teraz SDK dla systemu Windows 10 i nie będę już używać SDK 8, więc raczej nie chciałbym zainstalować ten pakiet SDK i użyć nowego intead. Czy mogę w jakiś sposób przenieść ten projekt do aplikacji Windows 10?

Jak to wygląda teraz:

enter image description here

+2

Czy chcesz dodać UWP (Universal Windows Platform)? Ten samouczek powinien pomóc w rozpoczęciu pracy: https://developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/. Wygląda na to, że tutorial jest oparty na Xamarin Forms, więc powinien działać dobrze z UWP, jeśli używasz najnowszej wersji Xamarin Forms. – dylansturg

+0

Wiem, że minęło trochę czasu, odkąd zadałem to pytanie, ale wróciłem do tego problemu i nadal nie został on rozwiązany. Twój komentarz nie jest dokładnie tym, o co prosiłem, możesz mnie źle zrozumieć. Zaktualizowałem pytanie, podając więcej szczegółów. – Piotrek

+0

Czy używasz programu Visual Studio 2013 lub 2015? – NineBerry

Odpowiedz

10

Tak, Porting jest możliwe. Proponuję stworzyć nowy projekt w tym rozwiązaniu (większość rozwiązań tego gita już dodała obsługę UWP, jak zauważyłem) i przerobić większość rzeczy. W niektórych projektach wykorzystujących kod specyficzny dla platformy, ten port może nie działać, ponieważ niektóre interfejsy API zmieniły się z WP8 na UWP - jak zapewne wiesz.

Po tej procedurze nadal miałem problemy - nie miałem działającego pliku .appxmanifest, więc nie mogę utworzyć pliku .pfx. Powoduje to ostrzeżenie o braku pliku certifcate.

Nie jestem pewien, czy wszystkie kroki są konieczne. Zostawiam to jako pracę domową;)

Zresztą tutaj pokażę kilka kroków do portu TodoREST-projekt do UWP:

  • rozładunek iOS i Droid projekt ułatwi to zadanie
  • Odinstaluj wszystkie pakiety Nuget od przenośny i projekt WinPhone81
  • Zmiana profilu klasy przenośny do Profile111 (odznacz WP8 Silverlight jako cel)
  • teraz można ponownie zainstalować Xamarin.Forms i Newtonsoft.Json na przenośnych projektu (odinstalować było konieczne, aby zmienić profil - co było konieczne bec ause to budzi pewne błędy tutaj)
  • Usuń app.config z projektem WinPhone81
  • Dodaj plik project.json do projektu WinPhone81 i umieścić w następującej treści:

    { 
        "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": { } 
        } 
    } 
    
  • Zapisz wszystko i blisko WinPhone81 projekt

  • W eksploratorze plików przejdź do folderu i edytuj Package.appxmanifest

    • Exchange Package Tag przez następujące:

      <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"> 
      
    • ... Usunąć i dodać następujące zamiast:

      <Dependencies> 
          <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0"/> 
      </Dependencies> 
      
  • Edycja TodoREST.WinPhone81.csproj:

    • W pierwszym <PropertyGroup> zastąpić <TargetPlatformVersion> przez to:

      <TargetPlatformIdentifier>UAP</TargetPlatformIdentifier> 
      <TargetPlatformVersion>10.0.10586.0</TargetPlatformVersion> 
      <TargetPlatformMinVersion>10.0.10586.0</TargetPlatformMinVersion> 
      
    • Zmień ProjectTypeGuids do

      <ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 
      
    • Na każdym PropertyGroup z Condition=... zastąpić WINDOWS_PHONE_APP w DefineConstants przez WINDOWS_UAP

    • Zapisz
  • Odśwież projekt w Visual Studio
  • Edit MainPage.xaml i zmienić <forms:WindowsPhonePage do <forms:WindowsPage i tworzy przestrzeń nazw do using:Xamarin.Forms.Platform.UWP (od .WinRT)
  • Tutaj musiałem zrestartować VS2015 z jakiegokolwiek powodu jako nie zauważyłem projektu.json
  • Rozpocznij projekt i debuguj!

Mam nadzieję, że to odpowie na twoje pytania.

Powiązane problemy