在构建设置中,有一个叫做“目标操作系统”的东西,它列出了
Android
iOS
Windows
MacOS
TvOS
在发布设置中有一个叫做“目标运行时”的东西,它列出了
windows-x86
windows-x64
linux-x86
linux-x64
osx-x64
...
我可以指定一些不一致的设置,例如 TargetOS:
Android
,Target 运行时:windows-x64
,发布仍然会生成 windows-x64
可执行文件。那么 TargetOS 的目的是什么?
此外,如果我指定“目标操作系统版本:
Windows 10.xxx
”,发布文件夹将包含一个名为“Microsoft.Windows.SDK.NET.dll”的新.dll
,大约 20MiB,但不存在如果我指定 Windows 8
,那么为什么 SDK .dll 仅在针对 Windows 10 或 11 时存在?
操作“目标操作系统”(和“目标操作系统版本”)实际上会将项目
TargetFramework
设置(存储在.csproj中)修改为相应的目标框架名字对象(TFM)。您不应将其视为最终设置,而应将其视为“默认”设置(即,如果您在发布时未指定一个设置,例如使用 dotnet publish
或 MSBuild 将使用此设置)。