Teamcity 빌드를 설정하여 C# 솔루션의 SonarQube 분석을 실행합니다. 나는 하나의 장애물을 통해 -Dsonar.sourceEncoding=UTF-8
을 사용하여 Sonar가 파일에서 utf-8 BOM 헤더를 인식하도록 허용했습니다. 내 현재의 문제는 수중 음파 탐지기가 인식하지 않는 것 문자열 보간처럼, C# 6.0 구문과 관련이있다 나를 "구문 분석 오류"주고있다 :C# 6.0 구문을 인식하도록 SonarQube 구성
[09:38:39][Step 4/6] 04:38:39.338 ERROR - Unable to parse file: C:\BuildAgent\work\.........\DataLayerTests.cs
[09:38:39][Step 4/6] 04:38:39.338 ERROR - Parse error at line 44 column 46:
[09:38:39][Step 4/6]
[09:38:39][Step 4/6] 43: Assert.IsNotNull(results, "The method returned NULL instead of any results.");
[09:38:39][Step 4/6] --> Assert.AreEqual(1, results.Count, $"The method returned {results.Count} results instead of 1.");
내가 필요로하는 추가 명령 줄 매개 변수가 있습니까 호환성을 위해 sonar-runner
과 함께 사용 하시겠습니까? 아니면 우리가 사용하는 C# 플러그인의 버전과 관련이 있습니까?
이 질문은 접두어 적으로 관련이있는 other 질문입니다. 이 질문은 Roslyn 분석기가 발견 한 문제를 SonarQube로 되돌려 보낼 수있게하는 것에 관한 것입니다. 내 질문은 Sonar가 내 구문을 완전히 이해할 단계에 아직 이르지 않았으므로 그보다 훨씬 기본적인 것입니다.
어떤 버전의 C# 플러그인을 사용하고 있습니까? 왜 '소나 러너'와 직접 거래하는거야? [SonarQube Scanner for MSBuild] (http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild)를 사용하지 않는 이유는 무엇입니까? – Tamas
우리는 SonarQube 4.5.6을 C# 플러그인 3.2 버전과 함께 사용하고 있습니다. 우리는 TeamCity의 빌드 단계를 통해 SonarQube Runner를 호출합니다. 따라서 sonar-runner (TeamCity에서는 자동으로 호출합니다)를 참조합니다. 나는 –
를 본다. 그것은 매우 오래된 C# 플러그인입니다 (Roslyn 이전). 최신 (또는 3.4+) 버전으로 업그레이드하면 C# 6 문제가 해결됩니다. 여기 버전을 확인하십시오 : https://jira.sonarsource.com/browse/SONARCS/?selectedTab=com.atlassian.jira.jira-projects-plugin:versions-panel – Tamas