如何获取目标框架名字对象(TFM)列表及可用TargetFramework值?
针对你提到的WinUI打包项目里的<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>配置,以下是几种获取可用TargetFramework值的方法:
直接在Visual Studio中查看
右键项目 → 选择「属性」→ 切换到「应用」标签页,在「目标框架」的下拉菜单里,会列出所有当前环境兼容的可用值,包括可以更新到的更高版本,直接选择即可自动修改项目文件。查看已安装的Windows SDK版本
打开Visual Studio安装器 → 点击「修改」→ 进入「单个组件」页面,找到「Windows SDK」分类,这里列出的已安装SDK版本号(比如19041、22621等),可以和对应的.NET版本(如net8.0、net7.0)组合成合法的TargetFramework值,格式为netX.Y-windows10.0.XXXXXX.0。直接尝试修改验证
如果你知道更高的Windows SDK版本号,可以直接编辑项目文件,把TargetFramework的值改成对应的组合(比如net8.0-windows10.0.22621.0),保存后Visual Studio会自动验证兼容性,如果缺少对应的SDK,会弹出提示引导你安装。
另外需要注意,WinUI 3对TargetFramework有版本匹配要求,一般建议使用与.NET版本对应的最新稳定Windows SDK,比如net8.0可以兼容19041及以上的Windows 10 SDK版本。
内容的提问来源于stack exchange,提问作者me.at.coding

