2017-05-09 38 views
1

我的問題與我在網上找到的每一個問題都是相反的。Resharper:在C#7.0功能上啓用警告?

我想使 C#7.0警告/(,今天發佈剛剛安裝。在VS2017中運行)

我需要這樣做,因爲我工作的項目將被髮布到ReSharper的錯誤,我的工作場所的服務器,當使用C#7.0功能時,它們的CI會引發致命錯誤(R# C# 7.0 language feature),所以我無法使用它們(它們不會接受任何與其CI無法達成一致的項目)。

它們使用Resharper CLI中的CLI。所以我想讓我的Resharper拋出相同的錯誤,所以我可以快速找到並消除C#7.0功能。我的Resharper顯示該項目是乾淨的(除了一些次要的「這可能是一個問題,但它不適合我」),所以當我運行代碼分析時,我沒有發生致命錯誤,甚至沒有關於C#7.0的警告。

我到目前爲止看到的每個問題都是關於如何對禁用關於C#7.0的警告。我的Resharper沒有發出任何警告或錯誤,而我們的CI上的錯誤是。

我已經看過了這些選項,但找不到任何明顯的「C#7.0」選項。我已經尋找類似「最大支持語言/拋出一個錯誤,如果語言功能在更高版本中使用/等」但我似乎無法找到任何東西。

編輯:Web.config中的CodeDOM部分:

<system.codedom> 
    <compilers> 
    <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.2.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" /> 
    </compilers> 
</system.codedom> 

這肯定設置爲語言版本6 ...

回答

4

你可以配置哪些C#版本構建引擎通過右鍵點擊使用每個項目該項目選擇Properties,選擇Build部分,單擊Advanced...,將Language version設置爲您的CI服務器使用的任何版本。一旦你這樣做,當你在任何C#7.0特性本地構建時,構建會失敗。

enter image description here

或者你可以嘗試得到升級,C#7.0的工作你CI服務器。 「

+0

」或者,您可以嘗試讓您的CI服務器升級到C#7.0。「這是我的想法是「正確的答案」:) –

+1

@DavidArno你是對的,但是我相信要改變CI服務器會更加困難,這會影響每個使用它的人,而不僅僅是改變你自己的項目語言版。 –

+1

@DavidArno在一個完美的世界裏,是的。在官僚主義的現實中,不是一個有用的答案。 :-) – fdmillion