你的project.json没有;t列表'win10'作为目标运行时
Your project.json doesn't list 'win10' as a targeted runtime
我讨厌转发,但我认为在MSDN论坛上发帖是正确的做法,因为看起来没有多少人使用HTML/JavaScript开发UWP应用程序,但由于我根本没有答案,我向伟大的SO社区寻求帮助。
问题:
我有一个非常简单的HTML/JavaScript UAP应用程序,它引用了一个Windows运行时组件,该组件引用了类库。
我需要在PC和/或手机上运行项目,所以我需要用任何CPU编译它。问题是,每当我想编译我的应用程序时,我都会收到以下错误:
Your project.json doesn't list 'win10' as a targeted runtime. You should add '"win10": { }' inside your "runtimes" section in your project.json, and then re-run NuGet restore.
如果我在运行时添加了普通的win10条目,我会得到许多其他错误。这就是我的project.json的样子:
{
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0"
},
"frameworks": {
"uap10.0": { }
},
"runtimes": {
"win10-arm": { },
"win10-arm-aot": { },
"win10-x86": { },
"win10-x86-aot": { },
"win10-x64": { },
"win10-x64-aot": { }
}
}
此外,如果有人有兴趣查看,这里有一个最低限度的谴责。
AnyCPU不再是托管(C#/VB)UWP应用程序的有效配置。这是因为UWP应用程序的所有托管代码(exe或dll)都是使用.NET Native工具链编译的,以构建特定于体系结构的二进制文件。因此,如果您在HTML/JS UWP应用程序中使用托管WinRT组件,您还需要根据部署到的设备在应用程序项目中设置特定架构,即x86用于桌面,ARM用于手机设备。
我有类似的设置和完全相同的问题。我目前的解决方法是在桌面上测试时将编译器设置为x86,在移动设备上测试时更改为ARM。远非最佳,但如果你能想出更好的办法,我很乐意收到回复。
根据这篇SO文章,UWP/C#应用程序不支持AnyCPU。
除了确保使用.NET本机编译进行测试外,您可能还会注意到AnyCPU构建配置已经消失。随着.NET Native的加入,AnyCPU不再是有效的构建配置,因为本机编译依赖于体系结构。这样做的另一个后果是,在打包应用程序时,应选择所有三种体系结构配置(x86、x64和ARM),以确保应用程序适用于尽可能多的设备。
来源:.NET Native–它对通用Windows平台(UWP)开发人员意味着什么
要修复此错误:在项目页面上;构建选项卡:平台目标="下拉列表中的值,即x86、x64、ARM"用于本地运行。如果发布。。。右键单击项目,选择"存储|创建应用程序包…"。。。在选择和配置程序包页面上,取消选中中性(任何CPU),选中x86、x64、ARM。
- 使用压缩的JavaScript文件(不是运行时压缩)
- 如何在运行时在angular 2中加载外部js脚本
- JavaScript错误:Microsoft JScript运行时错误:应为对象
- Google 脚本:用于创建日历活动的脚本运行时不会出错,但不会执行任何操作
- http.listen()在运行时接受终端命令
- 自定义运行时Can'在谷歌应用引擎中看不到我的自定义日志
- 实现比较方法的最佳实践是什么;s的比较类型是在运行时选择的
- JavaScript运行时是如何工作的
- 在运行时创建元素时移到一边时出错
- 如何在运行时在HTML5画布中绘制正方形
- 如何在运行时使用javascript隐藏图像
- 在运行时使用jquery准备表体会导致设计问题
- 使用主题运行时portlet liferay时出现Javascript错误
- JavaScript运行时事件循环现有技术
- Appcelerator Titanium:在运行时下载并解释JavaScript代码
- angularjs ng点击运行时标记不起作用
- 在函数运行时显示对话
- 如何在javascript中在运行时获取对象/数组
- 变量在运行时未定义,但在使用调试器时定义
- 你的project.json没有;t列表'win10'作为目标运行时