【问题标题】:How do I reference a multi-target .NET Core class library from a 4.6.1 project within the same solution?如何在同一解决方案中从 4.6.1 项目引用多目标 .NET Core 类库?
【发布时间】:2016-08-05 20:02:12
【问题描述】:

我正在构建一组可供 .NET Core 和 .NET 4.6.1 项目使用的库。我创建了一个新的 .NET Core 类库,并将 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 包中并引用它?

【问题讨论】:

    标签: c# .net visual-studio-2015 .net-core


    【解决方案1】:

    是的,这很好用!如果您的 .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 中未来的工具更新(目前尚不支持,但会支持)。您可以通过从您的库中创建一个 NuGet 包(使用 dotnet pack)并将其作为普通包添加到您的项目中来解决此问题 - 通过托管在 NuGet/MyGet 或您自己的 local feed 上。

    【讨论】:

    • 谢谢!我不知道我需要使用新的项目格式。如果它不起作用,我希望 VS 不会让我添加引用。
    • @ErickT 添加了一些关于使用 NuGet 作为解决方法的信息。我自己这样做是为了将基于 xproj 的较新库放入基于 csproj 的项目中。
    猜你喜欢
    • 2020-09-14
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    相关资源
    最近更新 更多