【问题标题】:NuGet cross-project dependencies in shared library共享库中的 NuGet 跨项目依赖项
【发布时间】:2018-07-14 12:16:03
【问题描述】:

设置:我在 VS 2017 中创建了一个面向 .Net Standard 2.0 的库,该库使用 NuGet 来引用第 3 方驱动程序并管理其依赖项。到目前为止,一切顺利。

下一步是创建一个使用(共享)库的应用程序,在本例中是针对 .Net Core 的控制台应用程序。当然,我可以添加对构成共享库的 DLL 的引用。编译但不运行,因为缺少第 3 方的东西。我当然可以将所有必需的 DLL 复制到应用程序中,但出于显而易见的原因,我宁愿使用 NuGet。
我对 NuGet 不是很有经验,从未在这个星座中使用过它,并且阅读过像 NuGet cross-project dependency 这样的文章我得到的印象是我需要摆弄应用程序的项目文件才能以完整的形式获得库但肯定这不可能是前进的方向。

所以我的问题是 - 是库方面的问题,即我需要以特定方式构建或导出,还是在应用程序方面,恕我直言,不需要知道那个级别有关它使用的某些库的详细信息。

非常感谢任何帮助!

【问题讨论】:

    标签: c# .net visual-studio-2017 nuget .net-core


    【解决方案1】:

    我以这种方式与其他几个解决方案共享一个大型、复杂的库。

    首先,设置您的库。右键单击库的项目名称并选择属性。大约在中途您会看到一个标签为“包裹”的选项卡。每次重建项目时,您都可以使用它来自动生成 NuGet 包。只需增加版本号。我使用四个位置的版本编号——前三个是semver-style(主要版本、次要版本、补丁版本),第四个是我为每个新版本手动递增的。

    我建议在您的驱动器或网络上专门为您的本地 NuGet 包创建一个文件夹。您可以为每个项目在其下创建文件夹。然后将调试和发布构建输出指向该项目文件夹,NuGet 包也将在那里生成。

    最后,回到 Visual Studio,转到工具 -> 选项 -> NuGet 包管理器 -> 包源并将顶级文件夹添加为包源。

    从那里开始很简单——在您的消费应用中打开您的 NuGet 依赖项。右上角有一个下拉菜单,您可以在其中选择包源。它会自动搜索所有子文件夹并找到您创建的任何包。现在,当您调整库时,只需单击一下即可更新客户端应用程序。

    【讨论】:

    • 这显然是我缺少的一点。非常好的和全面的答案,非常感谢!
    猜你喜欢
    • 2015-12-12
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2016-02-18
    • 1970-01-01
    • 2012-04-05
    相关资源
    最近更新 更多