我正在尝试运行其中一个样本from this site。
问题是:为Windows 8制作了项目。当我在Visual Studio中打开解决方案时,它告诉我需要安装Windows 8 SDK才能继续。
我现在正在使用Windows 10 SDK,我将不再使用SDK 8,所以我宁愿不安装此SDK并使用新的一个intead。我可以以某种方式将此项目移植到Windows 10应用程序吗?
现在看起来如何:
答案 0 :(得分:10)
是的,移植是可能的。我建议在这个解决方案中创建一个新项目(这个git的大多数解决方案已经添加了UWP支持,如我所见)并重做大多数东西。在一些使用平台特定代码的项目中,这种移植可能不起作用,因为一些API从WP8变为UWP - 正如您可能知道的那样。
在此过程之后我仍然遇到问题 - 我没有工作.appxmanifest文件,所以我无法创建.pfx文件。这会一直警告您缺少certifcate文件。
我不确定是否所有步骤都是必要的。我把它留作家庭作业;)
无论如何,在这里,我向您展示了将TodoREST项目移植到UWP的步骤:
将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
替换WINDOWS_UAP
<forms:WindowsPhonePage
<forms:WindowsPage
更改为using:Xamarin.Forms.Platform.UWP
,并将命名空间格式化为.WinRT
(来自 num1
/ \
num2,num3 num4,num5
)我希望这能回答你的问题。