.net-core - 如何创建具有嵌套依赖项的 Nuget 包

标签 .net-core nuget nuget-package

我正在开发 .NET Core 解决方案。对于解决方案中的一个项目,我需要构建一个 Nuget 包。

项目 A 引用了解决方案中的另一个项目 B,并设置为项目引用。项目 B 依赖于 Nuget 包 C。

现在,当我为 A 创建 Nuget 包时,它包含 A.dll 和 B.dll,但不包含 C.dll

有人可以帮我解决这个问题吗?如何包含所有 3 个 .dll?

谢谢, 安迪

最佳答案

您当然可以通过创建自己的 nuspec 文件来解决此问题。我不确定如何在 csproj 文件的上下文中执行此操作。

例如,通过#csla,我们可以管理自己的所有 nuspec files因为有很多事件部件。

在 nuspec 文件中,您可以列出要包含的特定文件以及任何包依赖项。因此,在您的示例中,听起来您的 nuspec 将包含项目 A 和 B 程序集,因此如下所示:

<files>
  <file src="..\..\bin\Release\netstandard\netstandard2.1\**\A.dll" target="lib\netstandard2.1" />
  <file src="..\..\bin\Release\netstandard\netstandard2.1\**\B.dll" target="lib\netstandard2.1" />
</files>

并且会声明对包 C 的依赖关系。

<dependencies>
  <group targetFramework="netstandard2.1">
    <dependency id="C" version="1.0.0" />
  </group>
</dependencies>

您可以在 #csla 存储库中看到大量示例。也许最接近的(不使用通配符)是 Csla.Blazor.nuspec文件。

关于.net-core - 如何创建具有嵌套依赖项的 Nuget 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61668289/

相关文章:

windows - 为什么我无法运行 dotnet tool install --global bla-bla-bla?

c# - Async GetAwaiter() 抛出奇怪的异常

asp.net-core - EF Core 没有 DBset 上的 .Include() 方法

c# - 网络核心 : Use a Tag Helper in a Custom Tag Helper that returns Html?

nuget 覆盖文件

c# - 未找到 Microsoft.web.Infrastructure.dll - Visual Studio 2015

c# - nuget-packing a csproj 与 nuspec 之间的区别

msbuild - 不要将 PDB 从已安装的 NuGet 包复制到/bin/Release 中

.net - 如何通过 f# 使用 NuGet 包和命名空间

asp.net - NuGet 服务器 - 基于动态 Feed URL 访问自定义私有(private) NuGet 库