2121 <Target Name =" MvvmToolkitVerifyWindowsSdkPackageVersion" DependsOnTargets =" ResolveAssemblyReferences" >
2222 <PropertyGroup >
2323
24- <!-- The minimum build version for the Windows SDK package -->
25- <_MvvmToolkitWindowsSdkPackageMinBuild >41</_MvvmToolkitWindowsSdkPackageMinBuild >
24+ <!--
25+ The minimum build versions for the Windows SDK package. We keep track of up to 3 different versions:
26+ - The minimum Windows SDK package for which we don't want to emit a build error.
27+ - The recommended Windows SDK package for UWP projects using the .NET 9 SDK (with UWP XAML projections).
28+ - The recommended Windows SDK package for WindowsAppSDK projects (ie. without UWP XAML projections).
29+ -->
30+ <_MvvmToolkitWindowsSdkPackageMinBuild >38</_MvvmToolkitWindowsSdkPackageMinBuild >
31+ <_MvvmToolkitWindowsSdkPackageRecommendedUwpBuild >39</_MvvmToolkitWindowsSdkPackageRecommendedUwpBuild >
32+ <_MvvmToolkitWindowsSdkPackageRecommendedWindowsAppSDKBuild >41</_MvvmToolkitWindowsSdkPackageRecommendedWindowsAppSDKBuild >
33+
34+ <!-- Switch on the recommended one based on configuration -->
35+ <_MvvmToolkitWindowsSdkPackageRecommendedBuild >$(_MvvmToolkitWindowsSdkPackageMinBuild)</_MvvmToolkitWindowsSdkPackageRecommendedBuild >
36+ <_MvvmToolkitWindowsSdkPackageRecommendedBuild Condition =" '$(UseUwp)' == 'true'" >$(_MvvmToolkitWindowsSdkPackageRecommendedUwpBuild)</_MvvmToolkitWindowsSdkPackageRecommendedBuild >
37+ <_MvvmToolkitWindowsSdkPackageRecommendedBuild Condition =" '$(UseUwp)' != 'true'" >$(_MvvmToolkitWindowsSdkPackageRecommendedWindowsAppSDKBuild)</_MvvmToolkitWindowsSdkPackageRecommendedBuild >
2638 </PropertyGroup >
2739 <ItemGroup >
2840
2941 <!-- If 'WindowsSdkPackageVersion' is explicitly set, validate against that -->
3042 <_MvvmToolkitWindowsSdkPackage Include =" $(WindowsSdkPackageVersion)" Condition =" '$(WindowsSdkPackageVersion)' != ''" >
3143 <Referenced >$(WindowsSdkPackageVersion)</Referenced >
3244 <Required >10.0.$([System.Version]::Parse("$(WindowsSdkPackageVersion.Split('-')[0])").Build).$(_MvvmToolkitWindowsSdkPackageMinBuild)</Required >
45+ <Recommended >10.0.$([System.Version]::Parse("$(WindowsSdkPackageVersion.Split('-')[0])").Build).$(_MvvmToolkitWindowsSdkPackageRecommendedBuild)</Recommended >
3346 </_MvvmToolkitWindowsSdkPackage >
3447
3548 <!-- Otherwise, validate against the framework reference package -->
3851 Condition =" '$(WindowsSdkPackageVersion)' == '' AND '@(ResolvedFrameworkReference)' != '' AND '%(Identity)' == 'Microsoft.Windows.SDK.NET.Ref'" >
3952 <Referenced >%(ResolvedFrameworkReference.TargetingPackVersion)</Referenced >
4053 <Required >10.0.$([System.Version]::Parse("%(ResolvedFrameworkReference.TargetingPackVersion)").Build).$(_MvvmToolkitWindowsSdkPackageMinBuild)</Required >
54+ <Recommended >10.0.$([System.Version]::Parse("%(ResolvedFrameworkReference.TargetingPackVersion)").Build).$(_MvvmToolkitWindowsSdkPackageRecommendedBuild)</Recommended >
4155 </_MvvmToolkitWindowsSdkPackage >
4256
4357 <!-- Check whether the referenced Windows SDK package is compatible -->
4761 </ItemGroup >
4862 <PropertyGroup >
4963
50- <!-- Extract the required Windows SDK package version (to show if the one in use is not compatible) -->
64+ <!-- Extract the required and recommended Windows SDK package version (to show if the one in use is not compatible) -->
5165 <_MvvmToolkitWindowsSdkPackageRequired >@(_MvvmToolkitWindowsSdkPackage->'%(Required)')</_MvvmToolkitWindowsSdkPackageRequired >
66+ <_MvvmToolkitWindowsSdkPackageRecommended >@(_MvvmToolkitWindowsSdkPackage->'%(Recommended)')</_MvvmToolkitWindowsSdkPackageRecommended >
5267 </PropertyGroup >
5368
5469 <!-- Emit an error if the Windows SDK package version isn't valid -->
5570 <Error
5671 Condition =" '@(_MvvmToolkitCompatibleWindowsSdkPackages)' == ''"
5772 Code =" MVVMTKCFG0003"
5873 HelpLink =" https://aka.ms/mvvmtoolkit/errors/mvvmtkcfg0003"
59- Text =" This version of the MVVM Toolkit requires 'Microsoft.Windows.SDK.NET.Ref' version '$(_MvvmToolkitWindowsSdkPackageRequired)' or later. Please update to .NET SDK 8.0.109, 8.0.305 or 8.0.402 (or later). Alternatively, use a temporary 'Microsoft.Windows.SDK.NET.Ref' reference, which can be done by setting the 'WindowsSdkPackageVersion' property in your .csproj file to '$(_MvvmToolkitWindowsSdkPackageRequired )'." />
74+ Text =" This version of the MVVM Toolkit requires 'Microsoft.Windows.SDK.NET.Ref' version '$(_MvvmToolkitWindowsSdkPackageRequired)' or later. Please update to .NET SDK 8.0.109, 8.0.305 or 8.0.402 (or later). Alternatively, use a temporary 'Microsoft.Windows.SDK.NET.Ref' reference, which can be done by setting the 'WindowsSdkPackageVersion' property in your .csproj file. For your project configuration, it is recommended to set the package version to '$(_MvvmToolkitWindowsSdkPackageRecommended )'." />
6075 </Target >
6176
6277</Project >
0 commit comments