2016-10-24 23 views
0

In My C#言語slnファイルには2つのプロジェクトが含まれています。最初のプロジェクトには実際のコードがあります& 2番目のプロジェクトは最初のプロジェクトの単位テストケースを持っています。しかし、コマンドラインツール(inspectcode.exe)を使用してresharperコード解析を行っている間。コマンドラインツール(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; 
    } 
}' 

実行コマンド:cd:/inspectcode.exe /output=cd:\resharper-report.xml/no-swea/project = * /profile=cd:.sonar\resharper-sonarqube.DotSettings/no-buildin-設定CD:\ XXXX.sln上記の問題が発生したbcoz

+0

通常、ソリューションファイルでinspectcodeを呼び出すだけです。これらの 'cd:'パラメータは何ですか? – Matthias

+0

@Matthiasあなたの返事をありがとう。 cdは、これらのファイルの対応するフォルダディレクトリ(またはファイルフォルダの場所)を意味します。 – user7014262

+0

ソリューションフォルダ内の 'inspectcode.exe'を直接呼び出すことで、他のすべての間違いをなくすことができますか? – Matthias

答えて

0

1.project建てマシン(VS2015)&

2.project分析起こっマシンで異なるバージョンを構築VS( VS2013)、

ですので、機械のログにエラーの詳細が表示されません。

ビルドされたマシンで分析をテストしたところ、問題の根本的な原因が分かりました(MSBuildフォルダ{Msbuildfolder-> Microsoft-> visualstudio-> version}の下で利用できるはずの、 )&(不足しているdllを置き換えることによって)それを修正しました。 分析が正常に実行されました。

関連する問題