Sto cercando di utilizzare informazioni di assemblaggio patcher per creare un numero di versione qualcosa come:TeamCity 9: Come aggiungere git breve hash in informazioni di assemblaggio patcher
1.2.3.1a3c19e
dove l'ultimo bit è il git short hash.
Ho provato a utilizzare una fase di generazione di script di PowerShell per creare l'hash breve (poiché non trovo una variabile che lo ha) e aggiungerlo a una variabile di sistema, ma questa fase di creazione sembra essere eseguita dopo l'assembly delle informazioni patcher, quindi non è molto utile
Voglio solo aggiungere che la configurazione di build separata è necessaria perché il patcher di informazioni di assemblaggio è in esecuzione dopo che sono state raccolte le modifiche da VCS e prima che i passaggi inizino a essere eseguiti. C'è un modo in cui puoi liberarti della configuraiton build separata per l'esempio precedente usando lo script di PowerShell che passa attraverso tutti i file AssemblyInfo.cs e sostituisce invece il patcher di assembly assembly: '(Get-childitem -include AssemblyInfo.cs -recurse) | Foreach-Object {Set-Content -Encoding UTF8 $ _ ((Get-content $ _) -replace "1.0.0.0", "1.0.0-% GitShortHash%")} '. –
@Alexey. Sono d'accordo che potresti scrivere uno script per farlo in PowerShell, ma sarei molto cauto nel lasciar cadere questo codice in quanto è più probabile che si rompa la build. Per impostazione predefinita, AssemblyInfo.cs contiene AssemblyVersion e AssemblyFileVersion che non riuscirebbe a compilare se si utilizzava l'hash breve. Il AssemblyInfo.cs avrebbe bisogno di un po 'di "prepping" prima che questo script non interrompesse la compilazione. –
@DevOps, hai ragione per il 100%. Ho lasciato il mio commento e l'esempio di script solo per prendere nota che è possibile farlo senza aggiungere un'altra configurazione di build che può essere problematica per smbd a causa delle limitazioni della licenza. Lo script PowerShell che ho pubblicato deve essere aggiornato per poter sostituire la versione solo per l'attributo richiesto. –