如何从csproj生成nuspec中的依赖项(或者nupkg在其元数据中包含依赖项)



假设有一个解决方案,包含项目a, b

  • A以传统方式引用B。(add reference -> projects -> B)

  • B只依赖于。net框架库

我是这样做的:

nuget pack A.csproj

它将生成A.nupkg 而不包含

<dependencies>
      <dependency id="B" version="3.0" />
</dependencies>

我想要的是A.nupkg 在其元数据中包含对B的依赖。

我知道你可以把A.nuspec放在A.csproj的同一个文件夹下,并在A.nuspec中设置对B的依赖。但是它的生成和维护需要人工操作。既然A.csproj知道B,有没有办法在没有手工工作的情况下完成 ?

有什么建议吗?

通过在MSBuild构建脚本中添加两个目标来实现:

<GenSpecCommand>$(NuGetCommand) spec -Force</GenSpecCommand>
<BuildCommand>$(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -IncludeReferencedProjects</BuildCommand>

希望对大家有所帮助。

你可以使用"$version$",像这样

<dependencies>
  <dependency id="YourPackage.Name" version="$version$" />
</dependencies>

最新更新