如何从同一解决方案中的 4.6.1 项目引用多目标 .NET Core class 库?

How do I reference a multi-target .NET Core class library from a 4.6.1 project within the same solution?

我正在构建一组将由 .NET Core 和 .NET 4.6.1 项目使用的库。我创建了一个新的 .NET Core class 库,并添加了 net461 作为框架。我已经验证 .NET Core 库编译并且调试文件夹中有 4.6.1 二进制文件(以及 netstandard1.6)。

.NET Core 库和使用它的 4.6.1 应用程序位于同一个 Visual Studio 2015 解决方案中。 VS 允许我从 4.6.1 控制台应用程序添加对 .NET Core 库的引用,但任何使用该库的尝试都不会编译。 Visual Studio 是否支持这种情况,或者我是否需要将 .NET Core 打包到 nuget 包中并引用它?

是的,这很好用!如果您的 .NET 4.6.1 应用程序也在使用 project.json/xproj,那么它就像:

"dependencies": {
    "MySharedLibrary": {
        "version": "1.0.0",
        "target": "project"
    }
}

target: project 值告诉 NuGet 在库的本地解决方案中查找,而不是在包源中查找。

如果您的 .NET 4.6.1 应用程序是 .csproj 项目,您将不得不等待 Visual Studio 中的未来工具更新(目前尚不支持,但会支持)。您可以通过从您的库(使用 dotnet pack)创建一个 NuGet 包并将其作为普通包添加到您的项目中来解决这个问题 - 通过在 NuGet/MyGet 或您自己的 local feed 上托管.