-
Notifications
You must be signed in to change notification settings - Fork 568
Description
Description
I want to generate the versioning of the app. Unfortunately, the generation is executed (multiple times), but 1.0 .0 or 1 is always written to the AndroidManifest.
I have already tried several BeforeTargets (Build, PrepareForBuild, AssignTargetPaths, GenerateAndroidManifest, AssignProjectConfiguration) and also various assignments. But unfortunately, nothing works.
Depending on which BeforeTarget I try, the generation is performed 1-3 times, which I can see from the output in the log. But the AndroidManifest still shows 1.0.0 or 1. I haven't tried it for iOS yet.
Here is the snippet I am currently using:
<!--START:VERSIONIERUNG-->
<PropertyGroup>
<!-- Feste Major/Minor Version -->
<MajorVersion>2</MajorVersion>
<MinorVersion>1</MinorVersion>
<!-- Zweistellig formatieren -->
<FormattedMajorVersion>$([System.String]::Format('{0:D2}', $(MajorVersion)))</FormattedMajorVersion>
<FormattedMinorVersion>$([System.String]::Format('{0:D2}', $(MinorVersion)))</FormattedMinorVersion>
<!-- Buildnummer-Datei -->
<BuildCounterFile>$(MSBuildProjectDirectory)\buildcounter.txt</BuildCounterFile>
</PropertyGroup>
<!-- Ziel, das vor dem Build läuft und OS-Major-Version ausliest -->
<Target Name="SetApplicationVersions" BeforeTargets="PrepareForBuild">
<!-- Lese vorhandene Buildnummer -->
<ReadLinesFromFile File="$(BuildCounterFile)" Condition="Exists('$(BuildCounterFile)')">
<Output TaskParameter="Lines" ItemName="BuildNumberLines"/>
</ReadLinesFromFile>
<PropertyGroup>
<BuildNumber>@(BuildNumberLines)</BuildNumber>
<BuildNumber>$([MSBuild]::Add($(BuildNumber),1))</BuildNumber>
<BuildNumber>$([System.String]::Format('{0:D3}', $(BuildNumber)))</BuildNumber>
<_PlatformVersion>$(SupportedOSPlatformVersion)</_PlatformVersion>
<_PlatformVersion Condition="'$(_PlatformVersion)' == ''">0.0</_PlatformVersion>
<PlatformMajor>$([System.Version]::Parse('$(_PlatformVersion)').Major)</PlatformMajor>
<FormattedPlatformMajor>$([System.String]::Format('{0:D2}', $(PlatformMajor)))</FormattedPlatformMajor>
<!-- Automatische Buildnummer (MSBuild setzt Rev:rrr pro Tag hoch) -->
<BuildDate>$([System.DateTime]::Now.ToString("yyMMdd"))</BuildDate>
<FormattedBuildNumber>$(BuildDate)$(BuildNumber)</FormattedBuildNumber>
<!-- Interne Version für Store -->
<!-- Beispiel: OS-Major + Major + Minor + Buildnummer -->
<!--ApplicationVersion / versionCode / CFBundleVersion-->
<ApplicationVersion>$(FormattedPlatformMajor)$(FormattedMajorVersion)$(FormattedMinorVersion)$(FormattedBuildNumber)</ApplicationVersion>
<!-- Anzeigeversion für Nutzer -->
<!--ApplicationDisplayVersion / versionName / CFBundleShortVersionString-->
<ApplicationDisplayVersion>$(MajorVersion).$(MinorVersion).$(FormattedBuildNumber)</ApplicationDisplayVersion>
<!-- Android -->
<AndroidVersionCode>$(ApplicationVersion)</AndroidVersionCode>
<AndroidVersionName>$(ApplicationDisplayVersion)</AndroidVersionName>
<!-- iOS -->
<CFBundleVersion>$(ApplicationVersion)</CFBundleVersion>
<CFBundleShortVersionString>$(ApplicationDisplayVersion)</CFBundleShortVersionString>
</PropertyGroup>
<!-- Schreibe neue Buildnummer zurück -->
<WriteLinesToFile
File="$(BuildCounterFile)"
Lines="$(BuildNumber)"
Overwrite="true"/>
<!-- MAUI Manifest Properties setzen -->
<ItemGroup>
<ManifestProperties Include="versionName=$(ApplicationDisplayVersion)"/>
<ManifestProperties Include="versionCode=$(ApplicationVersion)"/>
</ItemGroup>
<!-- Nur zur Kontrolle -->
<Message Text=">>> BuildNumber: $(BuildNumber)" Importance="high" />
<Message Text=">>> BuildDate: $(BuildDate)" Importance="high" />
<Message Text=">>> FormattedBuildNumber: $(FormattedBuildNumber)" Importance="high" />
<Message Text=">>> ApplicationDisplayVersion: $(ApplicationDisplayVersion)" Importance="high" />
<Message Text=">>> ApplicationVersion: $(ApplicationVersion)" Importance="high" />
</Target>
<Target Name="SetAndroidApplicationVersions" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<AndroidVersionName>$(ApplicationDisplayVersion)</AndroidVersionName>
<AndroidVersionCode>$(ApplicationVersion)</AndroidVersionCode>
</PropertyGroup>
<!-- Nur zur Kontrolle -->
<Message Text=">>> AndroidVersionName=$(AndroidVersionName)" Importance="high" />
<Message Text=">>> AndroidVersionCode=$(AndroidVersionCode)" Importance="high" />
</Target>
<!-- ENDE: AUTOMATISCHE VERSIONIERUNG -->
Steps to Reproduce
No response
Link to public reproduction project repository
No response
Version with bug
Unknown/Other
Is this a regression from previous behavior?
Not sure, did not test other versions
Last version that worked well
Unknown/Other
Affected platforms
Android
Affected platform versions
android 35.0.92/9.0.100 SDK 9.0.300, VS 17.14.36401.2
Did you find any workaround?
No response