【问题标题】:dnx451 actually means .net 4.5dnx451 实际上意味着 .net 4.5
【发布时间】:2015-06-04 02:56:51
【问题描述】:

我使用 Visual Studio 2015 RC 创建了两个项目

  1. 一个类库MyLib,它的目标框架是.NET Framework 4.5.1
  2. 一个 ASP.NET 5 项目 MyWebApp,它在 project.json 中引用了 MyLib

    “框架”:{ “dnx451”:{ “依赖”:{ “Lib01”:“1.0.0-*” } }, }

当我尝试构建MyWebApp 时,出现警告:

MSB3274:主要参考“C:\MyWebApp\src\MyLib\bin\Debug\MyLib.dll”无法解析,因为它是针对“.NETFramework,Version=v4.5.1”框架构建的。这是比当前目标框架“.NETFramework,Version=v4.5”更高的版本。

如果我将MyLib的目标框架更改为4.5,警告将消失。

似乎MyWebApp 的目标是 .net 框架 4.5 而不是 4.5.1? 如何使MyWebApp 引用针对.net 4.5.1 的库?

【问题讨论】:

    标签: asp.net-core


    【解决方案1】:

    这个警告似乎没有多大意义。即使 Web 项目的 .net 版本设置为大于库的版本,它仍然可见。

    "net46": {                
      "dependencies": {
        "Lib01": "1.0.0-*"
      }
    }
    

    另一个有趣的事情是,可以针对 .NET Framework 4.6(最新)构建库,并且仍然构建/运行和使用 dnx451 项目中的类(我已将只读队列作为 IReadOnlyCollection 从 lib 传递到 web,仅在 4.6 中可用应用程序)。

    除此之外,据我所知,.net 4.5.1 并没有引入 API 的变化,而且测试 4.5 和 4.5.1 之间的差异也不是很容易

    最后,如果你想摆脱警告,你可以创建 vNext 类型的类库(包),然后从 ASP.NET 5 应用程序中引用它,这样你的类库就可以像 web 应用一样使用 dnx451。

    【讨论】:

    猜你喜欢
    • 2012-01-26
    • 2020-02-15
    • 2020-11-30
    • 2017-06-03
    • 1970-01-01
    • 2021-09-24
    • 2019-06-02
    • 1970-01-01
    • 2015-11-17
    相关资源
    最近更新 更多