【发布时间】:2013-10-06 11:18:17
【问题描述】:
如何获取我所针对的 .NET Framework 版本,而不是应用当前运行的 .NET Framework 版本?
例如,如果应用程序以 .NET Framework 4.5 为目标,我需要知道我的目标是 .NET Framework 4.5。
例如检查System.Environment.Version:
- 当面向 .NET Framework 4 时:
4.0.30319.18502 - 当面向 .NET Framework 4.5 时:
4.0.30319.18502
所以这行不通。
真正的目标是尝试解决lack of compiler defines in .NET。
【问题讨论】:
-
这个问题真的没有多大意义。如果您的程序是使用 .NET Framework 4.5 编译的,但您从不使用
dynamic、async或任何其他 .NET Framework 4.5 特定功能,理论上您可以在 .NET Framework 3.5 上运行它而无需修改。但为什么这很重要?您是否尝试使用dynamic编写程序,但能够将其编译为不 使用dynamic的备用3.5 版本?也许在缩减功能模式下? -
@MatthewWatson:那是在运行时,而不是编译时。
-
@TimS。那个问题"Detect target framework version at compile time"正是我想要的!不幸的是,没有解决方案(除了要求使用共享代码的人更改他们的解决方案)。