You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在AWS Linux 2系统中安装ASP.NET Core扫描器?

在AWS Linux 2系统中安装ASP.NET Core扫描器(SonarScanner)

前提条件

  • AWS Linux 2实例已配置完成,拥有sudo权限
  • 已安装对应版本的.NET Core SDK(适配你的ASP.NET Core项目)
  • 可正常访问SonarQube服务器

安装步骤

  1. 安装.NET Core SDK(未安装时执行)
    以安装.NET 6 SDK为例,执行以下命令:

    sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
    sudo yum install -y dotnet-sdk-6.0
    

    验证安装结果:

    dotnet --version
    
  2. 下载并配置SonarScanner for .NET

    • 下载指定版本的扫描器(以5.17.2为例):
      wget https://github.com/SonarSource/sonar-scanner-msbuild/releases/download/5.17.2/sonar-scanner-msbuild-5.17.2-netcoreapp3.1.zip
      
    • 解压到系统目录:
      sudo unzip sonar-scanner-msbuild-5.17.2-netcoreapp3.1.zip -d /opt/sonar-scanner
      
    • 添加环境变量,编辑~/.bashrc文件:
      export PATH="$PATH:/opt/sonar-scanner"
      
    • 使环境变量立即生效:
      source ~/.bashrc
      
  3. 配置SonarQube连接信息
    在项目根目录创建sonar-project.properties文件,填入以下内容(替换为你的实际信息):

    sonar.projectKey=你的项目唯一标识
    sonar.projectName=你的项目名称
    sonar.projectVersion=1.0
    sonar.sources=.
    sonar.host.url=http://你的SonarQube服务器地址:9000
    sonar.login=你的SonarQube访问令牌
    
  4. 执行项目扫描
    在项目根目录依次运行命令:

    dotnet sonarscanner begin /k:"你的项目唯一标识" /d:sonar.host.url="http://你的SonarQube服务器地址:9000" /d:sonar.login="你的SonarQube访问令牌"
    dotnet build
    dotnet sonarscanner end /d:sonar.login="你的SonarQube访问令牌"
    

代码分析任务日志问题分析

完整日志内容

开始:运行代码分析
任务 : 运行代码分析
描述 : 运行扫描器并将结果上传至SonarQube服务器。
版本 : 5.17.2
作者 : sonarsource
帮助信息 : 版本:5.17.2。Maven和Gradle项目无需此任务,扫描器应作为构建的一部分运行。

D:\a_tasks\SonarQubePrepare_15b84ca1-b62f-4a2a-a403-89b77a063157\5.17.2\classic-sonar-scanner-msbuild\SonarScanner.MSBuild.exe end
SonarScanner for MSBuild 5.14
使用MSBuild扫描器的.NET Framework版本
后处理已启动。
正在调用TFS处理器可执行文件...
尝试定位CodeCoverage.exe工具...
尝试通过安装配置定位CodeCoverage.exe工具...
代码覆盖率命令行工具:C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Team Tools\Dynamic Code Coverage Tools\CodeCoverage.exe
从TFS获取代码覆盖率报告信息...
尝试定位测试结果(.trx)文件...
在以下位置查找TRX文件:D:\a\1\TestResults
未找到测试结果文件
在预期位置未找到任何二进制覆盖率文件。
退而尝试在代理临时目录中定位覆盖率文件。
在D:\a_temp中搜索覆盖率文件
在代理临时目录中未找到覆盖率文件。
覆盖率报告转换成功完成。
TFS处理器已完成
正在调用SonarScanner CLI...
##[error]错误:发生JNI错误,请检查您的安装并重试

问题排查方向

  1. JNI错误处理:该错误由Java运行时环境异常导致,SonarScanner CLI依赖JRE/JDK,需确认:

    • 系统已安装符合要求的JDK(推荐11或17版本)
    • JAVA_HOME环境变量配置正确
    • Java执行路径已加入系统PATH
  2. 测试覆盖率文件缺失:日志显示未找到.trx测试结果和覆盖率文件,若需收集覆盖率数据,需确保:

    • 项目已配置并成功运行单元测试,生成.trx格式的测试结果文件
    • 测试任务已启用代码覆盖率收集,生成对应的二进制覆盖率文件
  3. 扫描器版本兼容性:日志中SonarScanner for MSBuild版本为5.14,而任务版本为5.17.2,版本不一致可能引发兼容性问题,建议使用统一版本的扫描器工具。


内容的提问来源于stack exchange,提问作者Mihir Kulkarni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 01:12:05