Próbuję użyć informacji montażowej Łatacz tworzy kilka wersji coś takiego:TeamCity 9: Jak dodać git krótki skrót do informacji montażowej patcher
1.2.3.1a3c19e
którym ostatni bit jest skrót skrótu git.
Próbowałem użyć kroku kompilacji skryptu powershell, aby utworzyć krótki skrót (ponieważ nie mogę znaleźć zmiennej, która go ma) i dodać go do zmiennej systemowej, ale ten krok kompilacji wydaje się być uruchamiany po zainstalowaniu patcha informacji, więc nie ma większego sensu.
Po prostu chcemy dodać, że oddzielna konfiguracja kompilacji jest potrzebna, ponieważ patcher informacji o złożeniu działa po zebraniu zmian z VCS i przed rozpoczęciem kroków. Istnieje sposób, w jaki można pozbyć się oddzielnej konfiguracji dla powyższego przykładu, używając skryptu powershell, który przechodzi przez wszystkie pliki AssemblyInfo.cs i zastępuje zamiast patcha z informacjami o złożeniu: '(Get-childitem -include AssemblyInfo.cs -recurse) Foreach-Object {Set-Content -Encoding UTF8 $ _ ((Get-content $ _) -replace "1.0.0.0", "1.0.0-% GitShortHash%")} '. –
@Alexey. Zgadzam się, że mógłbyś napisać skrypt, aby to zrobić w powershell, ale byłbym bardzo ostrożny, aby upuścić ten kod, ponieważ jest bardziej prawdopodobne, że przerwie on kompilację. Domyślnie AssemblyInfo.cs zawiera AssemblyVersion i AssemblyFileVersion, które nie mogą się skompilować, jeśli użyłeś krótkiego skrótu. AssemblyInfo.cs potrzebowałoby najpierw "prepping" dla tego skryptu, aby nie złamać kompilacji. –
@DevOps, masz rację w 100%. Zostawiłem komentarz i przykład skryptu tylko po to, by zauważyć, że można to zrobić bez dodawania kolejnej konfiguracji, co może być problematyczne dla smbd z powodu ograniczeń licencji. Wysłany przeze mnie skrypt powershell musi zostać zaktualizowany, aby zastąpić wersję tylko dla wymaganego atrybutu. –