Nuget打包csproj与其他csproj的依赖关系

时间:2015-12-08 11:45:31

标签: nuget tfsbuild nuget-spec

我有两个项目

  1. A.csproj
  2. B.csproj
  3. 其中B引用A(对解决方案中的项目的引用)

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

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

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

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

    在包B中,如何使用正确的版本向包A添加依赖关系?

1 个答案:

答案 0 :(得分:0)

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

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

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