簡體   English   中英

如何在Visual Studio 2013中啟用C#6.0功能?

[英]How to enable C# 6.0 feature in Visual Studio 2013?

我正在閱讀C#6.0中介紹的最新功能,並且只是按照自動屬性初始化程序的示例,

class NewSample
{
    public Guid Id { get; } = Guid.NewGuid();
}

但我的IDE無法識別語法。

我想知道如何在Visual Studio 2013中啟用C#6.0。我使用的Target框架是4.5.1。

在VS2013下,您可以將新編譯器作為nuget包安裝到項目中。 這樣您就不需要VS2015或更新的構建服務器。

https://www.nuget.org/packages/Microsoft.Net.Compilers/

Install-Package Microsoft.Net.Compilers

該軟件包允許您使用/構建C#6.0代碼/語法。 因為VS2013本身不能識別新的C#6.0語法, 所以它會在代碼編輯器窗口中顯示錯誤,盡管它可以正常構建

使用Resharper,您將在C#6功能上獲得波浪線,但燈泡為您提供了“為此項目啟用C#6.0支持”選項(設置保存為.DotSettings)。

正如@ stimpy77所提到的:對於MVC Razor視圖中的支持,你需要一個額外的 (對於那些沒有閱讀注釋的人)

Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform

如果您需要完整的C#6.0支持,則需要安裝VS2015。

過時的預發布軟件的信息:

根據這個,它只是一個安裝並去Visual Studio 2013:

實際上,從此版本安裝C#6.0編譯器只需安裝Visual Studio 2013擴展,而后者又會更新MSBuild目標文件。

所以只需從https://github.com/dotnet/roslyn獲取文件即可開始使用。

您必須知道它是在那里實現的規范的過時版本,因為它們不再更新Visual Studio 2013的包

您還可以嘗試安裝在Visual Studio 2013之上的April's End User Preview。(注意:此VS 2013預覽已過時,不再更新)

因此,如果您確實要使用最新版本,則必須下載Visual Studio 2015

值得一提的是,VS 2015用戶構建時間將會增加

Install-Package Microsoft.Net.Compilers

那些使用VS 2015並且必須將這個包保留在他們的項目中的人可以修復增加的構建時間

編輯文件packages\\Microsoft.Net.Compilers.1.2.2\\build\\Microsoft.Net.Compilers.props並清理它。 該文件應如下所示:

<Project DefaultTargets="Build" 
         xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
</Project>

這樣做會強制在添加Microsoft.Net.Compilers包之前構建項目

這里的很多答案都是在Roslyn (開源.NET C#和VB編譯器)轉移到.NET 4.6之前編寫的。 因此,如果您的項目以4.5.2為目標(繼承且無法更改),他們將無法幫助您。

但是你可以從https://www.nuget.org/packages/Microsoft.Net.Compilers獲取以前版本的Roslyn並安裝它而不是最新版本。 我使用1.3.2。 (我嘗試了2.0.1 - 這似乎是在.NET 4.5上運行的最后一個版本 - 但我無法編譯*。)從VS 2013中的Package Manager控制台運行它:

PM> Install-Package Microsoft.Net.Compilers -Version 1.3.2

然后重新啟動Visual Studio。 我最初遇到了一些問題; 您需要將C#版本設置回默認值 (C#6.0不會出現在版本列表中,但似乎已成為默認值),然后清理,保存,重新啟動VS並重新編譯。

有趣的是,由於代碼中使用了C#6.0特性,我沒有任何IntelliSense錯誤(這是首先想要C#6.0的原因)。

*版本2.0.1拋出錯誤“Microsoft.CodeAnalysis.BuildTasks.Csc任務無法從程序集Microsoft.Build.Tasks.CodeAnalysis.dll加載。無法加載文件或程序集'Microsoft.Build.Utilities.Core,Version = 14.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其中一個依賴項。系統找不到指定的文件。確認聲明是否正確,程序集及其所有依賴項是否可用,以及該任務是否包含實現Microsoft.Build.Framework.ITask的公共類。

更新自發布此答案后我注意到的一件事是,如果您在調試期間更改任何代碼(“編輯並繼續”),您會發現您的C#6.0代碼將突然顯示為似乎恢復到的錯誤一個pre-C#6.0環境。 這需要重新啟動調試會話。 非常煩人,特別是對於Web應用程序。

如果您有Resharper,則可以在Visual Studio 2013中使用完整的C#6.0功能。
你必須啟用Resharper Build和voilá! 在Resharper選項 - >構建 - 啟用Resharper構建並在“使用MSBuild.exe版本”中選擇“最新安裝”

這樣Resharper將構建您的C#6.0項目,並且也不會將C#6.0代碼強加為無效。

我也使用這個,雖然我有Visual Studio 2015,因為:

  1. 由於某種原因,Resharper中的單元測試對我來說不適用於Visual Studio 2015
  2. VS 2015比VS 2013使用更多內存。

我把它放在這里,因為我現在正在尋找這個問題的解決方案一段時間,也許它會幫助其他人。

似乎有一些誤解。 所以,不要試圖修補VS2013,而是回答微軟的問題: https ://social.msdn.microsoft.com/Forums/vstudio/en-US/49ba9a67-d26a-4b21-80ef-caeb081b878e/will-c- 60不斷地支持逐VS-2013?論壇=羅斯林

所以,請閱讀並安裝VS2015。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM