c# - 在 Visual Studio 中设置一个 "Target framework"有什么影响

标签 c# .net visual-studio frameworks

在 Visual Studio 中,您可以为项目设置“目标框架”。

众所周知,如果将“目标框架”设置为(例如).NET 4.5.2,则应用程序将无法在仅安装了 .NET 4.5.1 的计算机上运行。

第一个问题:这是真的吗? 第二个问题:该设置是否还有其他影响?

在我的公司,我们目前将应用程序的最低要求设置为 .NET 4.5.2。因此,我们当然要设置“目标框架”。 我们正在使用的内部库设置为 .NET 4.5 的“目标框架”。我们想知道这是否会有所不同,或者库是否也应该设置为 .NET 4.5.2。

我认为这应该无关紧要,但我没有找到关于该主题的任何资源。你怎么看?

最佳答案

第一个问题:这是真的吗?

这取决于。如果您的应用程序针对 4.5.2 但不使用 4.5.2 中但不在 4.5.1 中的任何内容,那么理论上它将在仅安装 4.5.1 的机器上运行良好. (可能会检查程序/安装程序运行以检查是否安装了 4.5.2,但您可以禁用它)

但是,如果您的应用程序使用 4.5.2 中但不在 4.5.1 中的函数(或其他任何函数),那么您的应用程序将无法在 4.5.1 机器上运行。

作为一般规则,您应该只将目标设置为所需的最小值。 IE。如果您不使用 4.5.2 特定功能,则不要将其定位为 4.5.2,因为没有必要。如果可以,最好将目标设置为 4.5.1,因为您可以在 4.5.2 和 4.5.1 机器上正常运行它。目标越低越好,因为它有可能在更多机器上运行。

同样的规则也适用于所有其他框架(即,如果您的 Android 应用程序只需要 18 级 API,则将目标(或至少最低目标)设置为 18 而不是更高。

关于c# - 在 Visual Studio 中设置一个 "Target framework"有什么影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35478020/

相关文章:

asp.net - 这两个有什么区别......?

c# - 我如何使用 C# 将逗号分隔的字符串转换为小写

c# - 序列化列表计数而不是列表

C#:拆分字符串而不返回空字符串

c# - 跨版本的 COM 引用名称更改(Win7 CERTCLIENTLib 到 Win8 CERTCLILib)

c# - 无法使用 Open XML SDK 创建文档

c# - 使用 .NET 格式化大数

c# - C# 中的 XML 序列化

c# - 创 build 置表单

javascript - 在 .Net 1.1 上使用两次正面前瞻不起作用