Visual Studio 2017网站项目:无法使用C#7

4
我在Visual Studio 2017中创建了一个全新的Web项目,但是无法在该项目中使用任何C#7功能。在Visual Studio中没有报错,但构建失败,并且输出窗口验证了CSC任务的失败。
这里有一个可以重现此问题的项目。

https://drive.google.com/open?id=0B-mqMIMqm_XHQkxONjRLYzA3SUk

这是一个开箱即用的VS Web项目,除了在HomeController.cs中添加以下代码外,没有其他特殊之处:
var i = 1_000_000;

这里使用了 C#7 的特性。删除此行代码,编译将成功。

非 Web 项目可以正常编译使用 C#7 特性,我已经找到问题所在,是因为 Web 项目使用了不同的编译器。非 Web 项目使用以下编译器:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\csc.exe

Web 项目使用以下编译器:

[解决方案根目录路径]\packages\Microsoft.Net.Compilers.1.3.2\build..\tools\csc.exe

我该如何解决这个问题?


1
你的项目针对哪个版本的.NET? - maccettura
1
如果你发布那个驱动器链接,你会收到大量的访问请求,我认为最好你把内容粘贴在这里。 - hardkoded
尝试安装 Microsoft.Net.Compilers 包。 - gregkalapos
将Microsoft.Net.Compilers软件包升级到最新版本。2.2.0是最新版本。 - Erik Funkenbusch
1个回答

8

我在我的机器上尝试了它,也遇到了同样的问题。

解决方法是安装最新版本的Microsoft.Net.Compilers包。

例如通过Tools->NuGet包管理器 ->包管理器控制台

然后输入:

Install-Package Microsoft.Net.Compilers


它能工作!这是疯狂的,你会认为这种基本功能可能已经被测试过了... - Ian Newson
这是在Visual Studio 2017发布时ASP.NET对C#编译器依赖的一个疏忽。我们将更加密切地跟踪此类依赖关系,以避免再次发生这样的不便。 - Julien Couvreur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接