2015-08-17 3 views
1

Я хочу автоматически создавать пакеты nuget на нашем сервере сборки TeamCity. Мы используем TeamCity AssemblyInfo Patcher, чтобы все DLL конкретной сборки имели одинаковые номера версий.Зависимость NuGet от той же версии

Мы генерируем несколько пакетов 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

Я имею в виду заменяя версию так же, как на этапе сборки PowerShell, поэтому текущая версия сборки всегда выполняется. –

ответ

0

Teamcity в NuGet пакет включает в себя поле номер версии.

Если вы используете AssemblyInfoPatcher, мы можем просто использовать номер, который мы там укажем.

Для более сложных подходов с использованием файла содержимого Replacer, небольшой скрипт 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']"