从 .net 核心应用程序引用 "traditional"(旧).net 库的可能性

Possibility to reference "traditional" (old) .net libraries from .net core applications

关于从 .net 核心应用程序(例如 ASP.Net 核心)到常用的 .net 框架库的反向引用可能性,有一些令人困惑的信息。我现在的印象是:

  1. 如果您正在使用 "netcoreapp1.0",那么您根本无法引用普通库。
  2. 如果您正在使用例如"net451",然后就可以引用了,但是要先用对应的tag打包成nuget包。

这听起来正确吗?

P.S。我在想,也许在案例 1 中反编译为 IL 并重新编译回 "netcoreapp1.0" 或 "netstandard1.6" 或其他一些巫术会有帮助吗?

P.P.S。正如评论中提到的,可以引用普通的 class 库项目,后者又可以引用该库,但这意味着您必须包装库中的所有内容,因此是否可以使用取决于很多。

目前这是不可能的。

您有 3 个选项:

  1. 尝试将您的旧项目转换为可移植的 class 库 (PCL),然后您的 .net 核心应用程序可以引用它。
  2. 将您的项目包装到 nuget 包中(您已经提到过)
  3. 将项目添加为 class 库(在评论中提到),但根据 that SO answer and that GitHub thread 的说法,使其工作似乎并不容易。

2017 年 3 月编辑: 刚刚遇到 this post:现在似乎可以通过更改 .csproj 使您的 .NET Core 应用程序以 .NET 4.6 为目标,未经测试(尚未)

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>

然后是 dotnet restore 然后是 dotnet run