在Visual Studio 2022中,“目标操作系统”和“目标运行时”有什么区别?

5
在构建设置中,有一个叫做“目标操作系统”的东西,它列出了。
Android
iOS
Windows
MacOS
TvOS

在发布设置中有一个叫做“目标运行时”的东西,它列出了。
windows-x86
windows-x64
linux-x86
linux-x64
osx-x64
...

我可以指定一些不一致的设置,比如TargetOS:Android,目标运行时:windows-x64,但发布仍将生成一个windows-x64可执行文件。那么TargetOS的目的是什么呢?

此外,如果我指定“目标操作系统版本:Windows 10.xxx”,发布文件夹将包含一个名为“Microsoft.Windows.SDK.NET.dll”的新.dll,大约20MiB,但如果我指定Windows 8,则该文件不存在,那么为什么只有在针对Windows 10或11时才存在SDK .dll?


1
他们只选择了易于识别的术语。出于一个很好的原因,在以前的VS版本中,选择正确的架构一直是一个巨大的问题。太少的程序员理解更改解决方案平台和选择诸如“AnyCPU”和“Prefer 32-bit”之类的后果。Windows 10.xxx选择应该用于针对UWP或Windows.AppSDK的项目,这些项目通过商店发布。对UWP的支持曾经集成在CLR中,但又被删除了。UWP已经死了,有点秘密。 - Hans Passant
1个回答

1

操作"目标操作系统"(以及“目标操作系统版本”),实际上将修改项目中的TargetFramework设置(存储在.csproj文件中),对应目标框架标识符(TFM)。你不应该将它视为最终设置,而是作为"默认"设置(例如,如果你在通过CLI发布时没有指定一个,使用dotnet publish或MSBuild,则将使用这个)。

还请查看:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接