【问题标题】:Can't update protobuf-net to 2.3.0 [UWP]无法将 protobuf-net 更新到 2.3.0 [UWP]
【发布时间】:2017-12-30 13:19:41
【问题描述】:

当尝试通过 Visual Studio 2017 的 NuGet 包管理器为 UWP 解决方案将 protobuf-net 更新到 2.3.0 时,我收到以下错误:

System.Reflection.Emit.Lightweight 4.3.0 为 UAP 上的 System.Reflection.Emit.Lightweight 提供了编译时参考程序集,Version=v10.0,但没有与 win10-arm 兼容的运行时程序集-奥特。 System.Reflection.Emit.ILGeneration 4.3.0 为 UAP 上的 System.Reflection.Emit.ILGeneration 提供了编译时参考程序集,Version=v10.0,但没有与 win10-arm-aot 兼容的运行时程序集。

x86 和 x64 也会出现这种情况。

非常感谢任何有关如何解决此问题的想法!

【问题讨论】:

  • 短期而言,我可能可以通过更改一些构建符号来创建一个支持 UWP 的库 - 它不会工作得非常快,但它会工作。从长远来看,我需要解决编译时代码生成问题。我今天没有这两个(尽管没有 IL-emit 的代码可以在受限平台上使用 - 我只是没有专门针对 UWP)
  • 那太好了!我尝试升级的原因是因为我面临着这里发现的相同问题:link 最好专门针对该问题提出一个新问题吗?我意识到我的情况有点不同,因为它适用于 UWP,而不是 Xamarin。
  • @Coopra 我无法重现这一点。我能够在 VS2017 的 UWP 项目中成功安装 protobf-net 2.3.0。您能否提供一个项目,在该项目中进行此重现或步骤以进入您所处的状态。
  • @karann-MSFT 我可以通过在 VS2017 中创建一个空白 UWP 项目来重现这一点,该项目的最大测试和最小目标版本设置为 14393。尝试安装失败,并在我的问题中发布错误消息.自从我提出问题以来已发布的 2.3.1 和 2.3.2 版本也会出现这种情况。

标签: c# uwp protobuf-net


【解决方案1】:

你有两个选择:

  1. 迁移到包参考 - 您可以通过将平台目标版本更改为 15063 轻松完成此操作。您会看到一条消息告诉您,这样做会破坏与 VS 2015 的兼容性。说,是的。然后您可以改回 14393。
  2. 编辑 project.json - 从运行时删除以下条目:
    • win10-arm-aot
    • win10-x86-aot
    • win10-x64-aot

【讨论】:

    猜你喜欢
    • 2011-01-29
    • 2018-05-20
    • 2016-10-04
    • 2021-02-23
    • 2017-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多