2016-04-09 2 views
7

Я пытаюсь запустить один из образцов from this site.Портирование Xamarin Windows 8 для Windows 10 SDK

Проблема: проекты были сделаны для Windows 8. Когда я открываю решение в Visual Studio, он говорит мне, что мне нужно установить Windows 8 SDK для продолжения.

enter image description here

Я использую в настоящее время Windows 10 SDK, и я больше не будет использовать SDK 8, так что я предпочел бы не установить этот SDK и использовать новый Intead. Могу ли я каким-либо образом переносить этот проект на приложение Windows 10?

Как это выглядит сейчас:

enter image description here

+2

Вы хотите добавить UWP (Universal Windows Platform)? Это руководство поможет вам начать работу: https://developer.xamarin.com/guides/xamarin-forms/platform-features/windows/installation/universal/. Похоже, что этот учебник основан на Xamarin Forms, поэтому он должен отлично работать с UWP, если вы используете последнюю версию Xamarin Forms. – dylansturg

+0

Я знаю, что прошло какое-то время с тех пор, как я задал этот вопрос, но я вернулся к этой проблеме и до сих пор не решен. Ваш комментарий не совсем то, о чем я просил, вы можете не понимать меня правильно. Я обновил вопрос с более подробной информацией. – Piotrek

+0

Используете ли вы Visual Studio 2013 или 2015? – NineBerry

ответ

10

Да, перенесение возможно. Я бы предложил создать новый проект в этом решении (большинство решений этого git уже добавили поддержку UWP, как я видел) и переделали большинство вещей. В некоторых проектах, использующих специфичный для платформы код, этот перенос может не работать, поскольку некоторые API изменились с WP8 на UWP - как вы, вероятно, знаете.

После этой процедуры у меня все еще были проблемы - у меня не было рабочего файла .appxmanifest, поэтому я не могу создать файл .pfx. Это предупреждает вас, что файл certifcate отсутствует.

Я не уверен, что все шаги необходимы. Я оставляю это в качестве домашнего задания;)

Во всяком случае, здесь я покажу вам шаги портировать TodoREST-проект в UWP:

  • Разгрузка IOS и Droid проект будет сделать это проще
  • удалить все пакеты NuGet от Портативный и проект WinPhone81
  • изменить профиль портативного класса Profile111 (снимите КР8 Silverlight в качестве цели)
  • Теперь вы можете переустановить Xamarin.Forms и Newtonsoft.Json на портативном проекта (деинсталляция необходимо изменить профиль - который был необходим клювом AUSE он поднял некоторые ошибки здесь)
  • Удалить app.config из проекта WinPhone81
  • Добавить project.json файл проекта WinPhone81 и поставить в следующем содержании:

    { 
        "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": { } 
        } 
    } 
    
  • Сохранить все и закрыть WinPhone81 проект

  • в проводнике файлов перейдите в папку и редактировать Package.appxmanifest

    • Обмен Тэг Пакет следующими:

      <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"> 
      
    • ... Удалить и добавить следующие вместо:

      <Dependencies> 
          <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0"/> 
      </Dependencies> 
      
  • Редактировать TodoREST.WinPhone81.csproj:

    • В первом <PropertyGroup> заменить <TargetPlatformVersion> этим:

      <TargetPlatformIdentifier>UAP</TargetPlatformIdentifier> 
      <TargetPlatformVersion>10.0.10586.0</TargetPlatformVersion> 
      <TargetPlatformMinVersion>10.0.10586.0</TargetPlatformMinVersion> 
      
    • Изменение ProjectTypeGuids в

      <ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 
      
    • На каждом PropertyGroup с Condition=... заменить WINDOWS_PHONE_APP в DefineConstants по WINDOWS_UAP

    • Сохранить
  • Reload проект в Visual Studio
  • Редактировать MainPage.xaml и изменить <forms:WindowsPhonePage к <forms:WindowsPage и формирует пространство имен using:Xamarin.Forms.Platform.UWP (от .WinRT)
  • Здесь мне пришлось перезапустить VS2015 по любой причине, он не заметил проект. json
  • Запустить проект и отладить!

Надеюсь, это ответит на ваши вопросы.

Смежные вопросы