【问题标题】:.NET 4.7.2 Class Library with simplified csproj format can't be referenced by ASP.NET Core projectASP.NET Core 项目无法引用具有简化 csproj 格式的 .NET 4.7.2 类库
【发布时间】:2018-09-07 12:38:29
【问题描述】:

我正在尝试将针对 .NET 4.7.2 的类库的 csproj 文件更新为详细的更新的简化格式 here。

我有一个 ASP.NET Core 项目,它以 netcoreapp2.0 为目标,并引用了前面提到的类库。只要 .NET Framework 项目具有旧的 csproj 文件格式,就可以正常构建。

.NET Framework 项目不能使用较新的csproj 格式并在以netcoreapp 为目标的项目中被引用,这是一个已知的缺点吗?

【问题讨论】:

  • 您收到的实际错误信息是什么?
  • @Neil Project Net472Project is not compatible with netcoreapp2.0 (.NETCoreApp, Version=v2.0), Project Net472Project supports: net472 (.NETFramework, Version=v4.7.2)

标签: c# asp.net asp.net-core msbuild


【解决方案1】:

.NET Core 和 .NET Standard 2.* 的资产/回退目标的兼容性级别目前为 4.6.1。 因此,理论上,您可以通过针对 4.6.1 而不是 4.7.2 并使用最新工具来使其工作。当您使用自己无法控制的库时,最初只为 NuGet 包计划此回退。

您应该将您的类库重新定位到 netstandard2.0 或 netcoreapp2.0,以确保您只使用可用的 API。然后可以从其他 .NET Framework 项目中使用该项目。

如果由于某种原因无法做到这一点,也可以修改项目引用:

<ProjectReference Include="..\som\netfx47-project.csproj"
    SkipGetTargetFrameworkProperties="true" />

【讨论】:

  • 这不起作用。正如您所提到的,我认为唯一的解决方案是转换为netstandard 或netcoreapp。
猜你喜欢
  • 2019-02-23
  • 2016-11-18
  • 1970-01-01
  • 2016-09-15
  • 2019-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多