我想在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>
答案 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']"