首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通用Windows平台/UAP:什么是AOT?

通用Windows平台/UAP:什么是AOT?
EN

Stack Overflow用户
提问于 2017-02-02 17:20:35
回答 2查看 2.1K关注 0票数 4

最近,我在Visual 2015中创建了一个空白的UWP应用程序,然后尝试向该应用程序添加一个nuget包。包安装失败,导致输出窗口中出现以下消息.

代码语言:javascript
复制
System.Reflection.Emit.ILGeneration 4.0.1 provides a compile-time reference assembly for System.Reflection.Emit.ILGeneration on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-arm-aot.
One or more packages are incompatible with UAP,Version=v10.0 (win10-arm-aot).
System.Reflection.Emit.ILGeneration 4.0.1 provides a compile-time reference assembly for System.Reflection.Emit.ILGeneration on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x64-aot.
One or more packages are incompatible with UAP,Version=v10.0 (win10-x64-aot).
System.Reflection.Emit.ILGeneration 4.0.1 provides a compile-time reference assembly for System.Reflection.Emit.ILGeneration on UAP,Version=v10.0, but there is no run-time assembly compatible with win10-x86-aot.
One or more packages are incompatible with UAP,Version=v10.0 (win10-x86-aot).

环顾四周,我发现了“project.json”中对“运行时”的引用;(我的是这样的).

代码语言:javascript
复制
{
  "dependencies": {
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.1.0"
  },
  "frameworks": {
    "uap10.0": {}
  },
  "runtimes": {
    "win10-arm": {},
    "win10-arm-aot": {},
    "win10-x86": {},
    "win10-x86-aot": {},
    "win10-x64": {},
    "win10-x64-aot": {}
  }
}

我的问题是:每个“运行时”与附加"-aot“的等效运行时之间有什么区别?

我见过一些帖子指出,如果我想使用一个不支持这些运行时的nuget包,我可以删除这些运行时,但我希望只删除它们,知道它们是什么。

注:我不知道这是否有任何区别,但我正在构建的UWP应用程序预计只会被侧加载(这是一个业务应用程序)。但是,它最终可能需要通过分发,以方便更新等等。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-02-03 03:18:25

运行时是一个通用术语,指的是运行代码的任何库、框架或平台。win10 10 arm和win10 10 arm aot运行时是不同的平台.这里是维基百科:运行时系统。此外,根据维基百科的提前(AOT)

提前编译是将高级编程语言(如C或C++ )或中间语言(如Java字节码或.NET公共中间语言(CIL)代码)编译成本机(依赖于系统的)机器代码的行为,目的是在本地执行生成的二进制文件。一些具有托管代码运行库的编程语言可以编译成中间语言,可以利用即时(JIT)的优点。

因此,我同意Hans的观点,即AOT编译器与System.Reflection.Emit.ILGeneration包不兼容。因此,如果要使用此包,可以删除这些aot运行时。

票数 5
EN

Stack Overflow用户

发布于 2018-09-21 12:44:36

我找到了我的案子的解决方案。我在我的解决方案中有几个项目,它们都在使用

Microsoft.NETCore.UniversalWindowsPlatform V 5.2.3

除了一个项目。它用的是

Microsoft.NETCore.UniversalWindowsPlatform V 5.0.0

当我更新5.0.0到5.2.3时,所有的错误都消失了。

注意:您不需要从JSON文件中删除aot标记.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42008460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档