如何创建具有嵌套依赖关系的Nuget包

问题描述 投票:0回答:2

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

项目A在解决方案中具有对另一个项目B的引用,被设置为项目引用。项目B依赖于Nuget程序包C。

现在,当我为A创建一个Nuget程序包时,它包括A.dll和B.dll但不包括C.dll

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

谢谢,安迪

.net-core nuget nuget-package
2个回答
0
投票

您当然可以通过创建自己的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文件。


0
投票

请参阅https://github.com/NuGet/Home/issues/3891了解对nuget客户团队的dotnet.exe pack功能请求。该问题中存在变通方法和辩论。

Thx,Rob Relyea,NuGet客户团队

© www.soinside.com 2019 - 2024. All rights reserved.