无法使MSBuild 2.2.0.24的SonarQube扫描程序正常工作:对.cs文件的路径访问被拒绝

无法使MSBuild 2.2.0.24的SonarQube扫描程序正常工作:对.cs文件的路径访问被拒绝,msbuild,sonarqube,Msbuild,Sonarqube,我正在尝试使用VS2013(.net 4.5.2)解决方案使sonarqube分析与TFS 2013上的构建(msbuild 12)一起运行。我已经安装了SonarQube服务器并成功运行了手动扫描 我使用的是tfvcTemplate.12.xaml,其编译前和编译后脚本指向生成服务器(d:\sonarqubeMSbuild..)上的sonarqube.scanner.msbuild.exe,并带有相应的开始和结束参数。我已经启用了详细模式来帮助理解问题 我总是在失败的tfs生成日志上获得以下错

我正在尝试使用VS2013(.net 4.5.2)解决方案使sonarqube分析与TFS 2013上的构建(msbuild 12)一起运行。我已经安装了SonarQube服务器并成功运行了手动扫描

我使用的是tfvcTemplate.12.xaml,其编译前和编译后脚本指向生成服务器(d:\sonarqubeMSbuild..)上的sonarqube.scanner.msbuild.exe,并带有相应的开始和结束参数。我已经启用了详细模式来帮助理解问题

我总是在失败的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.
使用process monitor在生成服务器上验证文件访问错误:

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
试图访问该文件的标识是我的生成代理所运行的域服务帐户。此帐户对文件系统具有完全访问权限,并且是生成计算机上的管理员

对此问题的任何想法都将不胜感激


谢谢

我们请求对文件进行读/写访问,这对我们来说是个错误。这是相应的解决方法:。

我们请求对文件进行读/写访问,这在我们方面是一个错误。这是修复它的相应票据:。但是,我不确定这是否能解决您的问题<代码>UnauthorizedAccessException在许多情况下都会抛出,而票证只修复了一个。你可能会面对另一个。你能检查一下你的文件是否是只读的吗?塔马斯,你是对的。文件是只读的,来自源代码管理。构建代理执行“获取最新版本”,在构建服务器的文件系统上,所有内容都是“只读”的。谢谢我会试着绕过它,看看它是否有用。难道每个使用scanner for msbuild的人都不应该在自动生成中遇到这个问题吗?我们很快就会解决这个问题。以前没有人报告过这个问题,所以我不认为每个人都受到影响。另外,请注意,此问题只影响msbuild12生成,而对于msbuild14,我们不是自己读取文件。请告诉我是否将文件标记为非只读解决了此问题。它确实解决了!非常感谢。