相同版本的NuGet依赖项

本文关键字:依赖 NuGet 版本 | 更新日期: 2023-09-27 18:08:25

我想在TeamCity构建服务器上自动生成nuget包。我们使用TeamCity AssemblyInfo patchcher使特定构建的所有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>

相同版本的NuGet依赖项

TeamCity的NuGet包包含一个版本号字段。

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

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

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