为什么不能'运行时在Windows 8.1软件包中使用

本文关键字:软件包 Windows 不能 运行时 为什么 | 更新日期: 2023-09-27 18:14:31

我在Visual Studio中使用新的"类库(NuGet包)"模板,我需要我的包可用于所有Windows 8+和Windows Phone 8.1应用程序。然而,当我试图将其重新定位到这些框架时,它会爆炸,并说像objectstring这样的类型"未定义"。

再生产

:

    在Visual Studio中创建一个新的"Class Library (Package)"项目。
  1. 双击项目。json并将目标框架从dotnet更改为netcore45(更多信息见表)。
  2. BAM ! 14个错误。即使您将System.Runtime更改为4.0.0(与Windows 8兼容)并摆脱其他依赖关系,您仍然会得到关于System.Void, System.String等未定义的错误。
有谁知道这个问题的解决方法吗?我不能把它重新定位到Windows 10,因为我需要在另一个针对这些平台的库中使用它。

edit:当我将其更改为netcore50时,它可以完美地工作,但由于上述原因,我不能这样做。

为什么不能'运行时在Windows 8.1软件包中使用

终于解决了!要修复它,将dependencies更改为frameworkAssemblies:

{
    // ...
    "frameworks": {
        "netcore45": {
            "frameworkAssemblies": {
                "System.Runtime": ""
            }
        }
    }
}

谢谢这么多这个项目,我花了6个小时寻找解决方案。这也很容易误导人,因为当你输入frameworkAssemblies时,Visual Studio不提供自动完成功能。