Używam obecnie wtyczki Jenkins "Version Number Plug-In", aby ustawić zmienną środowiskową dla wersji kompilacji. Działa to dobrze w JASKINI ale potrzebuję sposobu, aby przekazać to do MSBuild, więc numer wersji exe i dll są aktualizowane. Próbowałem ryk config, ale nie aktualizuje buduje wersjaKorzystanie z Jenkins Version Environment Zmienna w kroku MSBuild
Odpowiedz
Środowisko Nazwa zmiennej powinien być napisany bez Procent-znaki („%”), podobnie jak to :
VERSION
poza tym, myślę, że jesteś dobry, aby przejść.
Może również rozważyć zmianę
${BUILDS_ALL_TIME}
do
${BUILDS_ALL_TIME, XX}
(będzie wymuszać dwucyfrowy gromadzeniu liczby z zerami na początku)
Jest to cel MSBuild, który zastępuje wersję numer w pliku GlobalAssemblyInfo.cs ze zmienną SVN_REVISION z Jenkins.
Mamy wiele rozwiązań projektowych, w których każdy projekt odwołuje się do tej samej GlobalAssemblyInfo w celu uzyskania informacji ogólnych (takich jak wersja). Zmodyfikuj to, aby pasowało do twojej konfiguracji.
Po spełnieniu warunku Exists cel jest wykonywany na komputerach programistycznych, w których nie zainstalowano MSBuildCommunityTasks. W tych przypadkach numer wersji w GlobalAssemblyInfo.cs pozostaje nietknięty.
<Target Name="InjectSVNRevision" Condition="Exists('$(MSBuildExtensionsPath)\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets')">
<!-- When this build is done by the Jenkins CI server; the svn revision number is set in the environment variable SVN_REVISION
This little snippet replaces the revision number in GlobalAssemblyInfo.cs with this svn revision number
-->
<Message Text="Injecting SVN revision number in GlobalAssemblyInfo.cs" />
<FileUpdate Files="GlobalAssemblyInfo.cs"
Multiline="true"
Singleline="false"
Regex="(AssemblyVersion|AssemblyFileVersionAttribute|AssemblyFileVersion)\("([0-9]+\.[0-9]+\.[0-9]+)(\.[0-9]+)?"\)"
ReplacementText="$1("$2.$(SVN_REVISION)")"
Condition="$(SVN_REVISION) != '' "/>
</Target>
Najprostszym sposobem, w jaki to zrobiłem, jest użycie Change Assembly Version. Używając tej wtyczki, wystarczy podać numer wersji (lub użytą zmienną środowiskową) i zastąpić ją we wszystkich plikach AssemblyInfo.cs w obszarze roboczym.
Bardzo szybkim zadaniem jest utworzenie zadania powershell przed zadaniem msbuild. Zakłada to, że zdefiniowałeś zmienną VERSION jak wyżej (bez %%). I sprawdziłeś usunąć obszar roboczy przed rozpoczęciem kompilacji.
To jest kod dla zadania powershell.
gci -rec -Filter *AssemblyInfo* | ForEach { (Get-Content $_.FullName) | ForEach-Object {$_ -replace "1.0.0.0",$env:VERSION } | Set-Content $_.FullName}
- 1. Zmienna środowiskowa w Jenkins Pipeline
- 2. msbuild Błąd MSB4025 w TeamCity kompilacji kroku dla Visual Studio
- 3. Zmienna zmienna Lua z setfenv
- 4. Jenkins Conditional Step Sprawdź, czy zmienna ENV jest ustawiona
- 5. Korzystanie Jenkins numer kompilacji w obr./min pliku spec
- 6. Korzystanie zwarcia dostać Pierwsza zmienna niezerowe
- 7. Jak przekazać zmienne środowiskowe do kroku budowania testu sbt w Jenkins?
- 8. W Ansible, w jaki sposób używane jest słowo kluczowe environment?
- 9. Faceted Project Eclipse environment
- 10. Multi environment Express Api
- 11. Scratch memory in managed environment
- 12. Windows Python Version and VC++ Redistributable Version
- 13. Przełęcz zmienna niestandardowego typu do niestandardowego MSBuild zadania
- 14. Weryfikacja kroku w Bazel
- 15. Jak można "pozyskać" środowisko wewnątrz kroku Buildbot?
- 16. Maven buduje z niewłaściwym JDK na Jenkins
- 17. MSBuild nie kopiuje plików z PublishProfile
- 18. Integracja Wix z MSBuild
- 19. Oracle Application Express Dev Environment
- 20. "powrócić" z metody podczas kroku?
- 21. Zagrożenia bezpieczeństwa związane z PermitUser Environment w ssh
- 22. Java Unsupported major.minor version 52.0 error Minecraft
- 23. wyzwalania Jenkins hudson.model.Job programowo z jenkins wtyczki
- 24. Korzystanie z MSBuild, w jaki sposób ustawić właściwość do zawartości pliku?
- 25. Wtyczka Jenkins EnvInject + Praca z potokiem
- 26. Wykreślanie funkcji kroku w Mathematica
- 27. Modyfikuj MSBuild ItemGroup Metadata
- 28. symboli wieloznacznych w kroku danych
- 29. Jak wywołać wiele skryptów MSBuild z jednego skryptu MSBuild?
- 30. jak usunąć napis z xml version String
Tak, wymyśliłem, również wygląda na to, że MSBuild.exe domyślnie nie obsługuje wersji/p:. musisz zadzierać z rozszerzeniami MSBuld. Skończyłem właśnie na pisaniu aplikacji konsolowej, aby zaktualizować AssemblyInfo.cs przed budowaniem i nazwać to przejściem w zmiennej środowiskowej. Było to szybsze niż mieszanie się ze skomplikowanymi rozszerzeniami msbuild. –
Cóż, miałem nadzieję, że znalazłeś dobry sposób na przekazanie wersji do kompilacji, ponieważ używamy również dostosowanego do tego skryptu ... – Gonen