NuGet相同版本的依赖关系

时间:2015-08-17 16:46:31

标签: c# dependencies nuget build-server

我想在TeamCity构建服务器上自动生成nuget包。我们使用TeamCity AssemblyInfo Patcher使特定版本的所有dll具有相同的版本号。

我们从项目中生成多个NuGet包。如何在依赖项字段中指定版本号,以便它使用与正在构建的包相同的编号而不对NuGet .spec文件中的编号进行硬编码

例如,MyProject.Plugins需要MyProject.Math。因此,对于MyProject.Plugins 1.2.3.45,依赖关系应如下所示:

<dependencies>
    <dependency id="MyProject.Math" version="1.2.3.45" />
</dependencies>

1 个答案:

答案 0 :(得分:0)

TeamCity的NuGet包中包含版本号字段。

如果您使用AssemblyInfoPatcher,我们可以使用我们在那里指定的数字。

对于使用文件内容替换器的更复杂方法,从编译后的dll读取版本号的小型PowerShell脚本可以帮助并将其存储在teamcity配置参数%ActualVersion%

$DllFileName = "MyDll.dll"
$PathPrefix = "bin/Release/"
$Version = [System.Diagnostics.FileVersionInfo]::GetVersionInfo($PathPrefix + $DllFileName).FileVersion
Write-Host "##teamcity[setParameter name='ActualVersion' value='$Version']"