Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set Version for Windows #15238

Merged
merged 2 commits into from
May 30, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 0 additions & 8 deletions src/Core/src/nuget/buildTransitive/WinUI.targets
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
<!-- Workarounds for WinUI -->
<Project>

<!--
NOTE: workaround https://github.com/NuGet/Home/issues/6461
We should also follow Android, iOS, etc. workloads.
-->
<PropertyGroup>
<Version Condition=" '$(ApplicationDisplayVersion)' != '' ">$(ApplicationDisplayVersion)</Version>
</PropertyGroup>

<Target Name="_AddMauiPriFiles" AfterTargets="ResolveAssemblyReferences">
<ItemGroup>
<_ReferenceRelatedPaths
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,13 @@
<_MauiUsingDefaultRuntimeIdentifier>true</_MauiUsingDefaultRuntimeIdentifier>
</PropertyGroup>

<!--
Workaround for https://github.com/NuGet/Home/issues/6461
By default, Android and iOS set the Version property, so we need to do the same for Windows.
This also has to be done outside of the NuGets as this affects the NuGet restore.
-->
<PropertyGroup Condition=" '$([MSBuild]::GetTargetPlatformIdentifier($(TargetFramework)))' == 'windows' and '$(OutputType)' == 'WinExe' ">
<Version Condition=" $([System.Version]::TryParse ('$(ApplicationDisplayVersion)', $([System.Version]::Parse('1.0')))) ">$(ApplicationDisplayVersion)</Version>
</PropertyGroup>
Comment on lines +27 to +29
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This used to be in WinUI targets:

But I guess that won't work, because this would only work after a restore now:

There are 2 things different with this change than before:

  • This is in a *.Before.targets and it used to be *.After.targets. Is the ordering right?
  • The condition is a little different than what imported WinUI.targets:

<Import Project="WinUI.targets" Condition=" '$(TargetPlatformIdentifier)' == 'windows' and '$(WindowsAppSDKWinUI)' == 'true'" />

If this was moved to some *.After.targets would be be able to use the same Condition as before? $(TargetPlatformIdentifier) is probably blank at the point you have this.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think using GetTargetPlatformIdentifier is the most correct way. I believe? Order does not really matter as it all comes after the workload targets - and ios/android seems to be in this spot.

'$(WindowsAppSDKWinUI)' == 'true' This is the real issue actually. when you did a PR back in the day, this was not there. I added it at some point and it broke. So now I am moving this out - and to be consistent with android and ios I am using the Before spot - which is a bad name really - it is just immediate. No idea why it is "before"...


</Project>