Project会生成一个nuget包,该包依赖于另一个不创建nuget包的项目

时间:2019-03-14 13:46:36

标签: c# msbuild nuget csproj

如果我有一个构建nuget程序包的项目(P1),并且使它依赖于没有构建nuget程序包的项目(P2),则生成的程序包仍将P2 作为nuget引用包

复制步骤

  • 使用2个C#项目(P1和P2)创建解决方案
  • 让P1依赖于P2。
  • 将以下行添加到P1.csproj(以使其构建nuget包)

    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>

  • 构建解决方案
  • 在例如NuGet Package Explorer
  • 中打开生成的P1.nupkg

请注意,NuGet程序包依赖于另一个称为P2的NuGet程序包。但是,该程序包不存在,也永远不会存在,因为我没有告诉P2项目构建nuget程序包。

问题

如何强制P2.dll包含在P1.nupkg的lib文件夹中?理想情况下,它将强制仅针对自己创建nuget包的引用。

其他问题

2 个答案:

答案 0 :(得分:1)

如果我理解正确,则引用的项目程序集不会包含在nuget包中。

您可以在使用以下命令生成nuget软件包时尝试以下命令:

nuget pack projectfile.csproj -IncludeReferencedProjects

这应该在nuget中包含P2.dll。 Refer this MSDN page了解更多详情。

希望这会有所帮助。

答案 1 :(得分:0)

一种解决方法是将您不希望包含的任何资产标记为body{ background-color: darkslategrey; color: azure; } h1{ color: coral; } ,然后在您的项目文件中包含以下代码。

有关更多信息,请参见https://github.com/nuget/home/issues/3891#issuecomment-459848847

<PrivateAssets>all</PrivateAssets>