Javascript 您的project.json没有';t列表';win10';作为目标运行时

Javascript 您的project.json没有';t列表';win10';作为目标运行时,javascript,windows-runtime,win-universal-app,uwp,Javascript,Windows Runtime,Win Universal App,Uwp,我讨厌重新发布,但我认为发布到是正确的做法,因为看起来没有太多人使用HTML/JavaScript开发UWP应用程序,但是,因为我根本没有答案,所以我向great SO社区寻求帮助 问题: 我有一个HTML/JavaScript格式的非常简单的UAP应用程序,它引用了一个Windows运行时组件,该组件引用了一个类库 我需要在PC和/或手机上运行项目,所以我需要用任何CPU编译它。问题是,每当我想编译我的应用程序时,都会出现以下错误: Your project.json没有将“win10”列为目

我讨厌重新发布,但我认为发布到是正确的做法,因为看起来没有太多人使用HTML/JavaScript开发UWP应用程序,但是,因为我根本没有答案,所以我向great SO社区寻求帮助

问题:
我有一个HTML/JavaScript格式的非常简单的UAP应用程序,它引用了一个Windows运行时组件,该组件引用了一个类库

我需要在PC和/或手机上运行项目,所以我需要用任何CPU编译它。问题是,每当我想编译我的应用程序时,都会出现以下错误:

Your project.json没有将“win10”列为目标运行时。您应该在project.json的“runtimes”部分中添加“'win10”:{}”,然后重新运行NuGet restore。

如果我在运行时下添加普通的win10条目,我会得到许多其他错误。这就是my 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": { }
}
}

此外,如果有人有兴趣查看,可以进行最少的复制。

我有一个类似的设置和完全相同的问题。我目前的解决方法是在桌面上测试时将编译器设置为x86,在移动设备上测试时将其更改为ARM。远非最优,但如果你能想出更好的办法,我很乐意听到你的回音

根据SO post,UWP/C#应用程序不支持任何CPU

除了确保使用.NET本机编译进行测试外,您还可能注意到AnyCPU构建配置已消失。随着.NET Native的加入,AnyCPU不再是有效的构建配置,因为本机编译依赖于体系结构。这样做的另一个后果是,在打包应用程序时,应选择所有三种体系结构配置(x86、x64和ARM),以确保应用程序适用于尽可能多的设备


来源:

AnyCPU不再是托管(C#/VB)UWP应用程序的有效配置。这是因为UWP应用程序的所有托管代码(exe或DLL)都是使用.NET本机工具链编译的,以生成特定于体系结构的二进制文件。因此,如果您在HTML/JS UWP应用程序中使用托管WinRT组件,您还需要根据要部署到的设备(即x86用于桌面,ARM用于电话设备)在应用程序项目中设置特定的体系结构。

要修复此错误: 在项目页面上;构建选项卡:本地运行的平台目标=“下拉列表中的值,即x86、x64、ARM”。 如果发布。。。 右键单击项目,选择商店|创建应用程序包。。。
选择并配置软件包页面上,取消选中空档(任何CPU),选中x86、x64、ARM。

此-。“AnyCPU”需要全球化插件,它是一个.NET(而不是独立于设备)实现。因此,您必须为每个CPU体系结构进行构建。这行得通吗?我不是在使用Cordova,我是在使用HTML/JavaScript作为“本机”UWP应用程序。我真的希望我不需要为每一个架构构建,这就是“通用”的要点,为什么要投反对票?想解释一下吗?@sebagomez你有没有改变来解决这个问题,这里的问题是一样的:(给定的解决方案对methanks有效,这就是我一直在做的…寻找一些VS开发人员可以想出一些东西