【问题标题】:Create a .Net project strictly for composition of NuGet packages严格为 NuGet 包的组合创建一个 .Net 项目
【发布时间】:2019-01-04 00:34:07
【问题描述】:

我想创建一个严格存在的 .Net 项目(.Net Framework,而不是 Core),以便组合其他各种 NuGet 包。

我有一个基于插件的系统,其中所有插件都是 NuGet 包,核心系统本身是一个 NuGet 包。核心系统没有插件是没有用的,它严格来说是一个知道如何运行插件的引擎。因为我不想在我的核心系统中包含对插件的引用,所以我需要一个完全独立的项目,它是核心系统包和我想使用的插件的组合。我将此称为我的“组合”项目,在部署到我们的服务器之前,我将所有元素“组合”在一起。

现有项目/包示例:

  • 核心系统(NuGet 包...不应直接引用插件)
  • 插件
    • 插件 1(NuGet 包)
    • 插件 2(NuGet 包)
    • 等。 (NuGet 包)

假设的“组合”项目:

  • 作曲项目
    • 参考 -> 核心系统
    • 参考 -> 插件 1
    • 参考 -> 插件 2

有没有办法让项目只是引用 NuGet 包但不生成自己的程序集?也许这可以通过 MSBuild 诡计来完成。

【问题讨论】:

  • NuProjNuGetizer 可能值得一看。您应该能够使用这些工具中的任何一个来创建组合项目并构建元包。
  • @MattWard 这将如何在 .NET Core 或 .NET Standard 上完成?此外,NuProj 存储库已由其所有者存档; NuGetizer doesn't seem to support VS 2019。注意 NuGetizer 链接指向概述文档;实际项目似乎是here
  • 不确定是否可以使用标准 dotnet 包创建元包。您可能必须创建一个只有 NuGet 包依赖项且没有内容的 .nuspec,然后使用 nuget pack Your.nuspec

标签: c# .net msbuild nuget


【解决方案1】:

我不知道有一种方法可以将带有要附加到的程序集的 nuget 包拉下来。

不过没关系。我们公司也这样做了。我们有一个解决方案和一个 .csproj 文件,它引入了所有东西(数百个其他项目)需要的所有 nuget 包。当然,它会生成一个关联的 .DLL。但这没关系,只需有一个删除它的后期构建步骤。

【讨论】:

    猜你喜欢
    • 2019-10-28
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-01
    • 1970-01-01
    • 2017-02-24
    • 2019-03-22
    相关资源
    最近更新 更多