在构建设置中,有一个叫做"目标操作系统"的东西列出了

Android
iOS
Windows
MacOS
TvOS

在发布设置中,有一个叫做"目标运行时"的东西,它列出了

windows-x86
windows-x64
linux-x86
linux-x64
osx-x64
...

我可以指定一些不一致的设置,比如TargetOS:Android,Target Runtime:windows-x64,但发布仍然会生成windows-x64可执行文件.那么TargetOS的目的是什么呢?

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

推荐答案

操作"Target OS"(和"Target OS Version")实际上会将项目TargetFramework的设置(存储在.csproj中)修改为相应的target framework moniker (TFM).您不应将其视为最终设置,而应将其视为"默认"设置(即,如果在发布时未指定,例如通过CLI使用dotnet publish或MSBuild,则将使用此设置).

另请查看:

.net相关问答推荐

使用 DataDog 收集 OpenTelemetry 跟踪

如何计算给定2个字符串的距离相似性度量?

单击关闭按钮时隐藏表单而不是关闭

.NET 的 Visual Studio 调试器提示和技巧

SqlDateTime.MinValue != DateTime.MinValue,为什么?

重新启动(回收)应用程序池

为什么 ?: 会导致转换错误,而 if-else 不会?

.NET - 实现捕获所有异常处理程序的最佳方法是什么

C#:获得完整的桌面大小?

我可以在没有两个查询的情况下通过布尔标准将 IEnumerable 一分为二吗?

如何使用配置转换删除 ConnectionString

react 式扩展使用的好例子

使用 XmlSerializer 将空 xml 属性值反序列化为可为空的 int 属性

.NET 的 String.Normalize 有什么作用?

为什么 C# 不推断我的泛型类型?

.Net 正则表达式:单词字符 \w 是什么?

log4net的正确使用方法(记录器命名)

如何使用 DateTime 指定一天中的最晚时间

为什么 .NET 中没有 Tree 类?

表单不响应 KeyDown 事件