【问题标题】:Switch DNX Version in Visual Studio 2015?在 Visual Studio 2015 中切换 DNX 版本?
【发布时间】:2016-02-22 10:12:54
【问题描述】:

我使用 dnu 和 dnx 开始了一个新的 Web 项目。我能够在 Visual Studio 中打开它,一切都很好。现在我安装了 Facebook SDK nuget 包,但它与 DNX Core 5.0 不兼容。我有两组参考,一组用于DNX Core 5.0,一组用于DNX 4.5.1。编译时出现错误,因为找不到类型,尽管我可以在代码中很好地输入它们并且智能感知工作正常。

我找不到设置版本的任何地方。在global.json 中,它说我的版本是“1.0.0-rc1-final”,看起来像“clr”运行时,而不是“coreclr”。这是否意味着它是 4.5.1?它似乎与那些版本无关。

查看 project.json 我看到 facebook 仅适用于框架 'dnx451',如果我将其添加到 'dnxcore50' 然后我收到一个错误,即 Facebook 7.0.6 不支持 DNXCore,版本 = v5.0。

"frameworks": {
  "dnx451": {
    "dependencies": {
      "Facebook": "7.0.6"
    }
  },
  "dnxcore50": {
    "dependencies": {
      "Facebook": "7.0.6"
    }
  }
},

对整个项目的搜索发现这是唯一存在这些字符串的地方。从命令行执行递归 grep 显示路径中有许多行包含这些字符串(即lib/dnxcore50/)。父级似乎是DNXCore,Version=v5.0

完整搜索 DNX 我发现 web config 有一个 httpPlatform 条目:

    <httpPlatform processPath="%DNX_PATH%"
         arguments="%DNX_ARGS%"
         stdoutLogEnabled="false"
         forwardWindowsAuthToken="false"
         startupTimeLimit="3600" />

如何告诉我的项目使用框架dnx451

【问题讨论】:

    标签: visual-studio-2015 asp.net-core dnx


    【解决方案1】:

    如果您继续将 dnxcore50 引用为可能的目标框架,Visual Studio 将阻止您构建,除非所有引用的包都与它兼容。它试图确保您可以在两个框架上运行应用程序。

    您可以简单地从框架中删除 dnxcore50 以删除依赖项并确保您始终为 dnx451 构建。

    "frameworks": {
      "dnx451": {
        "dependencies": {
          "Facebook": "7.0.6"
        }
      }
    },
    

    【讨论】:

    • OMFG,太简单了...我认为该部分仅用于依赖于框架的依赖项...
    • 确实超级简单。它结合了每个框架的依赖关系和您的目标框架(您可以拥有某些依赖关系,这些依赖关系只需要一个框架)。很高兴为您提供帮助。
    • 值得注意的是,dnxcore50 目标是超级漂亮的全新独立、超便携和超酷的未来超赞功能,但现在通常不值得在您的应用程序中支持它.
    猜你喜欢
    • 2017-04-07
    • 2015-10-11
    • 1970-01-01
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多