2017-06-16 98 views
4

我已經在Visual Studio 2017中創建了一個全新的Web項目,但是我無法在此Web項目中使用任何C#7功能。在Visual Studio中沒有報告錯誤,但構建失敗,並且通過顯示CSC任務失敗的輸出窗口進行驗證。Visual Studio 2017 Web項目:不能使用C#7

這裏是一個重現問題的項目。

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)的\微軟的Visual Studio \ 2017年\企業\的MSBuild \ 15.0 \斌\羅斯林\ CSC.EXE

Web項目使用該編譯器:

[路徑解決方案根] \包\ Microsoft.Net.Compilers.1.3.2 \建.. \工具\ CSC.EXE

我怎樣才能解決這個問題?

+1

你在你的項目目標是什麼版本的.NET的? – maccettura

+1

如果您發佈該驅動器鏈接,您將獲得大量的訪問請求,我認爲您最好將此內容粘貼到此處。 – hardkoded

+0

嘗試安裝包Microsoft.Net.Compilers – gregkalapos

回答

7

我在我的機器上試過了,並且遇到了同樣的問題。

解決方案是安裝最新的Microsoft.Net.Compilers軟件包。

例如,通過工具 - > NuGet包管理器 - >程序包管理器控制檯

然後鍵入:

Install-Package Microsoft.Net.Compilers

+0

它的工作原理!很瘋狂,這是必要的,你會認爲這種基本的功能可能已經過測試...... –

+0

這是Visual Studio 2017發佈時,ASP.NET依賴於C#編譯器的疏漏。我們會更密切地跟蹤這些依賴關係,以避免再次出現這種不便。 –