【问题标题】:can nuget packages compiled against .net4.5 be referenced by dnxcore50dnxcore50可以引用针对.net4.5编译的nuget包吗
【发布时间】:2015-10-12 13:32:25
【问题描述】:

我正在编译一个仅针对 dnxcore50 的应用程序。

我正在尝试引用一个我知道在针对 dnx451 运行时可以正常工作的 nuget 包。当我做dnx . run 时,我得到:

System.InvalidOperationException:无法解析目标框架“DNXCore,Version=v5.0”的以下依赖项:

它还建议dnu restore,但包在那里

它显然不适用于这个包,所以在什么情况下它会(如果有的话)?
为了让它工作,包管理器必须构建一个针对 dnxcore50 编译的版本吗?

更新

这张图表让事情变得更清楚了(复制自here

【问题讨论】:

  • "dnxcore50是否可以引用针对.net4.5编译的nuget包" 没有。
  • @vcsjones 有没有办法查明是否有问题的包是针对 dnxcore50 编译的,或者是否有已编译的包列表(因此可以引用)?这里的问题是您可以在 project.json 中添加 ref 并且错误消息并不是那么清楚:即使它确实列出了有问题的 dll,也没有提及下游导致问题的原因。在某些情况下,您可能会冒险猜测,但“框架不匹配”错误可能会比“没有真正缺少程序集”错误更有帮助
  • dnxcore50 正在进行中,需要一段时间才能支持 Linux/OSX 目标上的所有框架程序集。 dnx451 存在的基本原因,它依赖于您机器上安装的 .NET Framework。

标签: c# nuget dnx .net-core


【解决方案1】:

没有。 dnxcore50 表示您在 .NET Core 之上的 DNX 上运行。您可以在 .NET Core 中加载的唯一程序集是那些以兼容配置文件为目标的程序集,在这种情况下,例如dnxcore50dotnet 或兼容的便携式配置文件之一。

如果您有一个针对完整 .NET Framework 编译的程序集(通过 net45net451 等),则它在 .NET Core 上将无法运行,因为相同的 API 不可用。

【讨论】:

  • 一目了然(即无需下载)是否可以知道一个nuget包是否支持dnxcore50? (或框架 x)例如 nuget.org/packages/log4net
  • 没有。必须下载软件包才能看到该信息。您可以使用 NuGet 包资源管理器直接从提要中快速打开包,以使其更轻松。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多