resharper代码分析使用命令行工具(inspectcode.exe)
本文关键字:工具 inspectcode exe 命令行 代码 resharper | 更新日期: 2023-09-27 18:14:43
在我的c#语言中,sln文件包含两个项目。第一个项目有实际代码&第二个项目具有第一个项目的单元测试用例。但是当我使用命令行工具(inspectcode.exe)进行resharper代码分析时。
对于两个项目resharper只在单元测试项目中做检查,而不是在实际的代码文件中。
package org.sonar.plugins.resharper;
import java.io.File;
import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.sonar.api.utils.command.Command;
import org.sonar.api.utils.command.CommandException;
import org.sonar.api.utils.command.CommandExecutor;
public class ReSharperExecutor
{
private static final Logger LOG = LoggerFactory.getLogger(ReSharperExecutor.class);
public void execute(String executable, String project, String solutionFile, File rulesetFile, File reportFile, int timeout)
{
Command cmd = Command.create(getExecutable(executable)).addArgument("/output=" + reportFile.getAbsolutePath()).addArgument("/no-swea").addArgument("/project=" + project).addArgument("/profile=" + rulesetFile.getAbsolutePath()).addArgument("/no-buildin-settings").addArgument(solutionFile);
int exitCode = CommandExecutor.create().execute(cmd, TimeUnit.MINUTES.toMillis(timeout));
if (exitCode != 0) {
throw new CommandException(cmd, "ReSharper execution failed with exit code: " + exitCode, null);
}
}
private static String getExecutable(String propertyValue)
{
String execName = "inspectcode.exe";
if (!propertyValue.endsWith(execName)) {
return new File(propertyValue, execName).getAbsolutePath();
}
return propertyValue;
}
}'
我需要对实际代码进行Resharper分析的地方
执行命令:cd:/inspectcode.exe/output=cd:'resharper-report.xml/no-swea/project=*/profile=cd:.sonar'resharper-sonarqube. xmlDotSettings/no-build -settings cd:'XXXX.sln
上述问题是由于VS构建版本不同而导致的
1。项目构建机(VS2015) &
2。项目分析发生机(VS2013),
所以它不显示任何错误的详细信息在机器的日志2。
在构建的机器中测试分析后,我找到了问题的根本原因(项目的依赖库很少被遗漏,应该在MSBuild文件夹{Msbuildfolder->Microsoft->visualstudio->version}下可用)&修复它(通过替换丢失的dll)。现在Analysis运行成功