【发布时间】:2014-08-14 00:12:44
【问题描述】:
我在我的开发机器上运行 Windows 7 64 位操作系统,使用 .Net 4.5 和 MS Visual Studio 2012。我有几个使用 System.Threading.Task 命名空间的 C# 项目。我希望能够在我们所有开发人员都可以访问的服务器上构建这些项目。问题是该服务器运行的是不支持 .Net 4.5 的 Windows Server 2003,并且 System.Threading.Task 命名空间在 .Net 4.5 之前的版本中不存在。
我可以使用编译时常量设置新的构建配置,我可以检查它以确定要包含的命名空间,但在我这样做之前,我想知道是否已经有一个我可以使用的预定义常量。我对此表示怀疑,因为据我所知,编译时常量只能在 C# 中定义或不定义,不像 C++ 中它们可以具有特定值。
【问题讨论】:
-
为什么不使用
Microsoft.Bclnuget 包? nuget.org/packages/Microsoft.Bcl -
使用相同代码定位 2 个版本的框架有点痛苦 - 您是否考虑过仅定位 4.0(可能与作为期货或 CTP 发布的任务库的 4.5 之前版本)或升级服务器到2012 年?
-
打算评论 Sav 的回答。这是一个运行时常量,但您可以使用 powershell/build 脚本来访问运行时常量,然后传递/定义编译标志/符号以传递给编译步骤。这样做可能比这样做更麻烦。
-
考虑将标题更改为“如何在支持旧 .NET 的旧服务器操作系统上构建 .NET 4.5 应用程序?”
-
@AaronLS 同意,这看起来像 XY problem。
标签: c# visual-studio-2012