为什么System.Runtime不能在Windows 8.1程序包中使用?

时间:2015-09-25 03:37:58

标签: c# asp.net .net windows-runtime nuget

我在Visual Studio中使用新的“类库(NuGet包)”模板,我需要我的软件包可用于所有Windows 8+和Windows Phone 8.1应用程序。但是,当我尝试将其重新定位到这些框架时,它会爆炸,并且说objectstring等类型“未定义。”

重新制作:

  1. 在Visual Studio中创建一个新的“类库(包)”项目。
  2. 双击 project.json 并将目标框架从dotnet更改为netcore45table here以获取更多信息)。
  3. BAM!开箱即用的14个错误。即使您将System.Runtime更改为4.0.0(与Windows 8兼容)并摆脱其他依赖项,您仍然会遇到有关System.VoidSystem.String等方式的错误等等没有定义。
  4. 有谁知道这个问题的解决方案?我不能将其重新定位到Windows 10,因为我需要在另一个针对这些平台的库中使用它。

    编辑:当我通过将其更改为netcore50将其定位到Windows 10时,它可以正常运行,但出于上述原因我不能这样做。

1 个答案:

答案 0 :(得分:0)

终于解决了!要解决此问题,请将dependencies更改为frameworkAssemblies

{
    // ...

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

非常感谢 this project,我花了6个小时寻找解决方案。它也非常具有误导性,因为当您键入frameworkAssemblies时,Visual Studio不提供自动填充功能。