众所周知,在 Windows 11 Build 25905 中,微软移除了 Arm32 UWP 应用的支持。
虽然这是件好事,但是苦了现在仍在坚守 Win10M 的 UWP 开发者,为什么呢?
Win10M 的最新版终结于 15254(不考虑预览版),而要生成 Arm64 版本的 UWP 程序,项目最低版本必须设置为 16299,怎么办?
答案是:照着它说的,把项目最低版本升级到16299!
当然,这样做,程序肯定是不能部署到 Win10M 上的...
那是不是一点办法都没有呢?也不是,我们可以对 Package.appxmanifest
干点坏事...
首先,让我们编辑 Package.appxmanifest
文件,如果你用 Visual Studio,就按下图那样打开编辑窗口。
然后,在 Dependencies
节中添加以下代码
<TargetDeviceFamily Name="Windows.Mobile" MinVersion="10.0.15063.0" MaxVersionTested="10.0.15063.0" />
如下图所示:
这里的 MinVersion
,各位根据自己项目的实际支持版本进行填写。
然后,就是见证奇迹的时刻了:
包生成成功了,接下来看部署。
部署成功!
当然,这样做是有代价的,由于最低版本设置到了 16299,VS 就不会警告你使用了在 Win10M 中不支持的 API,所以如果应用调用到了这些 API,应用会立刻崩溃。
所以用这个方法一定要注意:不要用那些在 Win10M 中不支持的 API,C# 和 XAML 都有避免使用不支持 API 的方法(比如 ApiInformation
类的 IsTypePresent()
、IsApiContractPresent()
方法、条件 XAML 等)