Nuget pack csproj 依赖于其他 csproj

Nuget pack csproj with dependencies on other csproj

我有两个项目

  1. A.csproj
  2. B.csproj

其中 B 引用 A(引用解决方案中的项目)

我想自动创建包,其中包 B 将包含对包 A 的依赖关系

我使用 nuget spec A.csproj 生成了 nuspec,并使用 nuget pack A.csproj 创建了包。项目B也一样。

然而 B.nuspec 不包含对 nuget 包 A 的依赖?

我想在 TFS 构建服务器上自动创建 nuget 包,其中程序集版本在构建时确定。

在B包中,如何给正确版本的A包添加依赖?

首先,要将引用的项目添加为包的一部分,您需要使用 IncludeReferencedProjects 选项。 命令行类似于 "nuget pack A.csproj -IncludeReferencedProjects"

其次,由于您要在TFS构建过程中创建NuGet包,您需要创建一个类似于以下的PowerShell脚本,并将PowerShell脚本包含在Pre-build脚本中(假设您正在使用TFS2013 或 TFS2015)。

$projectFile = "project.csproj"
$nugetPath = “NuGet.exe"
$version = $Env:TF_BUILD_BUILDNUMBER
Write-Host ("packing $projectFile...")
& $nugetPath pack "$projectFile" -Version $version -Symbols -IncludeReferencedProjects