VS2013を使用してTFS 2013でビルド(msbuild 12)を実行するようにsonarqube解析を実行しようとしています。純4.5.2)溶液。私はすでにSonarQubeサーバーをセットアップし、手動スキャンを成功させました。MSBuild 2.2.0.24でSonarQubeスキャナーを使用できません:.csファイルでパスへのアクセスが拒否されました
ビルドサーバー(d:\ sonarqubeMSbuild ..)のsonarqube.scanner.msbuild.exeと対応するbeginおよびendパラメータを指し示すプリコンパイルおよびポストコンパイルスクリプトで、tfvcTemplate.12.xamlを使用しています。問題を理解するのに冗長モードを有効にしました。
私は常にログを構築できなかったTFSに次のエラー・スタックを取得:
09:51:40.907 ERROR: Failed to analyze the file: D:\Builds\29\SD\ApplicationDemoTestsUnit_MAN\src\PreuvesDeConcept\TestsUnitaires\Application\CompteBancaire.cs
09:51:40.907 ERROR: System.UnauthorizedAccessException: Access to the path 'D:\Builds\29\SD\ApplicationDemoTestsUnit_MAN\src\PreuvesDeConcept\TestsUnitaires\Application\CompteBancaire.cs' is denied.
09:51:40.907 ERROR: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
09:51:40.907 ERROR: at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
09:51:40.907 ERROR: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share)
09:51:40.907 ERROR: at SonarAnalyzer.Runner.CompilationHelper.GetSolutionFromFiles(String filePath, Encoding encoding, AnalyzerLanguage language)
09:51:40.907 ERROR: at SonarAnalyzer.Runner.Program.RunAnalysis(ScannerAnalyzerConfiguration conf)
09:51:40.985 ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: The .NET analyzer failed with exit code: 1 - Verify that the .NET Framework version 4.5.2 at least is installed.
ファイルアクセスエラーがプロセスモニタを使用してビルドサーバーに検証される:
High Resolution Date & Time: 2017-01-04 09:51:40,9043151
Event Class: File System
Operation: CreateFile
Result: ACCESS DENIED
Path: D:\Builds\29\SD\ApplicationDemoTestsUnit_MAN\src\PreuvesDeConcept\TestsUnitaires\Application\CompteBancaire.cs
TID: 5232
Duration: 0.0000914
Desired Access: Generic Read/Write
Disposition: Open
Options: Synchronous IO Non-Alert, Non-Directory File, Open No Recall
Attributes: n/a
ShareMode: None
AllocationSize: n/a
アイデンティティがアクセスしようとしこのファイルは、ビルドエージェントが実行されているドメインサービスアカウントです。このアカウントはファイルシステムへのフルアクセス権を持ち、ビルドマシンの管理者です。
この問題に関するご意見は高く評価されます。私たちは、私たちの側のミスでファイルへの読み取り/書き込みアクセスを要求
おかげ
ファイルへの読み取り/書き込みアクセスをリクエストしていますが、これは間違いです。 https://jira.sonarsource.com/browse/SLVS-1122に対応するチケットがあります。しかし、私はあなたの問題を解決するかどうかはわかりません。 'UnauthorizedAccessException'がスローされることが多く、チケットだけが修正されます。あなたは別の顔に直面するかもしれないあなたのファイルが読み取り専用かどうかを確認できますか? – Tamas
Tamas、正しいファイルは読み取り専用で、ソース管理から来て、ビルドエージェントは最新のものを実行し、ビルドサーバーのファイルシステム上ではすべて「読み取り専用」として扱われます。ありがとう!私はそれが役に立たないかどうかを見るためにそれを回避しようとします。 msbuild用のスキャナを使用するすべての人が、自動ビルドでこの問題に遭遇するべきではありませんか? –
すぐにチケットを修正します。誰もこの問題を以前に報告していないので、誰もが影響を受けるとは思わない。また、この問題はmsbuild12ビルドにのみ影響し、msbuild14は自分でファイルを読み込んでいないことに注意してください。 – Tamas