我想知道我使用的是哪个版本的c#。 如果我要使用python,我会从命令行执行类似python -V的操作,或者键入:

import sys
print sys.version

在PHP中,我会这样做:phpinfo();java中:java -version

但是我不知道如何在c#中实现这一点。

这个问题并没有回答这个问题,尽管它的名字表明它应该回答这个问题。

我知道这取决于。net框架,但是否有一种编程方式来确定我的框架?我的意思是不需要进入目录并检查。net文件夹的名称。


当前回答

目前的答案已经过时了。您应该能够使用#error version(在项目中任何c#文件的顶部,或几乎在代码的任何地方)。编译器以一种特殊的方式处理这个错误,并报告一个编译器错误CS8304,表示语言版本,也表示编译器版本。CS8304的消息如下所示:

编译器版本:'3.7.0-3.20312.3 (ec484126)'。语言版本:6。

其他回答

目前的答案已经过时了。您应该能够使用#error version(在项目中任何c#文件的顶部,或几乎在代码的任何地方)。编译器以一种特殊的方式处理这个错误,并报告一个编译器错误CS8304,表示语言版本,也表示编译器版本。CS8304的消息如下所示:

编译器版本:'3.7.0-3.20312.3 (ec484126)'。语言版本:6。

在visual studio 2022中,我们可以在高级选项卡中查看项目属性

要获得框架的版本-查看一个主要程序集的版本。

 Console.Write(typeof(string).Assembly.ImageRuntimeVersion);

获取c#编译器的版本有点困难,但你应该能够通过检查使用的框架版本来猜测版本。

如果你正在使用命令行编译器(csc.exe),你可以检查帮助查看版本(同时你也需要知道框架版本:

C:\Windows\Microsoft.NET\Framework\v4.0.30319>csc /?
Microsoft (R) Visual C# 2010 Compiler version 4.0.30319.1

对于Windows,您在命令/搜索程序行中运行dev,并为vs选择开发人员命令提示符,然后您将运行

csc

现在你得到了类似于

Microsoft (R) Visual C# Compiler version 2.6.0.62329 (5429b35d)
Copyright (C) Microsoft Corporation. All rights reserved.   

对于Windows,如果以cmd终端启动

cd C:\Windows\Microsoft.NET\Framework\
dir

现在你看到所有的目录和文件在。net \Framework\ Please,选择v…比如,最近去那里,

cd v4.0.30319

Run

csc

你会看到关于c#编译器版本的信息,这可以是类似的

Microsoft (R) Visual C# Compiler version 4.7.2556.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.

前面的大部分答案都是正确的。只是巩固3,我发现这很简单,超级快。此外,#1现在在VS2019中是不可能的。

Visual Studio:项目>属性>构建>高级 这个选项现在被禁用了,默认语言由VS自己决定。详细的原因可以在这里找到。 在代码中任意位置输入“#error version”(.cs),鼠标悬停。 进入“Visual Studio开发人员命令提示符”并运行以下命令。 csc比如langversion: ?

阅读更多提示:这里。