【问题标题】:Running C# v.<latest> on a Win 7 w/ .NET 4.0在带有 .NET 4.0 的 Win 7 上运行 C# v.<latest>
【发布时间】:2016-04-18 17:19:52
【问题描述】:

我们正在编写一个必须在 Windows 7 上运行的应用程序......我们无法在这些客户端计算机上安装新版本的 .NET 框架。作为开发者,我想使用所有花哨的 C# 6.0 语言新特性,如果我理解正确的话,语言和框架已经解耦了。

我只需要澄清一下:如果我在我的应用程序中以 C# 6.0 为目标,代码是否仍能在以 .NET 4.0 作为最高框架版本的 Win7 客户端上正常运行?

【问题讨论】:

    标签: c# .net .net-4.0 c#-6.0


    【解决方案1】:

    是的,您可以在针对旧版本的 .NET 时使用 C# 6 编译器。这通常的工作方式是您拥有较新版本的 Visual Studio 并将其定位到特定的 .NET 版本。对于 C# 6,this means VS2015。您将能够使用任何新的 C# 功能,只要它们不依赖于 .NET 库。在特殊情况下,比如如果你想使用async 的东西,有backward compatibility libraries 可用。

    You could also直接使用csc.exe(C#编译器),绕过Visual Studio。

    【讨论】:

    • 根据文档,您链接到的 Microsoft Async NuGet 包需要 .NET 4.5 或更高版本...但仍然是一个很好的答案。
    • 请注意,C# 6.0 中的大多数新功能应该可以在 .Net 4.0 上正常运行。一个例外是使用带有FormattableString 的字符串插值的相当模糊的情况(使用string 的字符串插值应该可以工作)。
    • @ScottSEA 你在哪里看到的?我看到:“支持的平台:.NET Framework 4(带有 KB2468871)”。
    • @ScottSEA 我明白你指的是什么,页面有点混乱。他们并不是说您通常应该使用 .NET 4.5 中的包。他们说,如果您使用的是 .NET 4.5,那么包含 Microsoft.Bcl.Async 的唯一原因是您引用了使用 Microsoft.Bcl.Async 的 .NET 4 包。有关在 .NET 4 中使用它的参考资料,请参阅 this q/a
    • @TimS。啊!感谢您的澄清!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-09
    • 2011-02-07
    • 2011-07-04
    • 2015-03-03
    • 2012-07-04
    • 2015-01-26
    • 1970-01-01
    相关资源
    最近更新 更多