2014-11-23 60 views
2

我有一个包含多个项目的Visual Studio/C#解决方案。其中一些项目链接到其他目录中的源代码(在多个项目中使用的共享代码)。Sonar + ReSharper带有包含链接文件的项目

当运行Sonar时,它似乎工作得很好(虽然我不确定它实际上是否工作正常!),并且在Sonar外部运行ReSharper时也可以正常工作。但是,从Sonar运行ReSharper时,我最终得到了很多 17:44:37.607信息 - 跳过第6259行的ReSharper问题,该文件的文件为“C:\ GitRepos \ myProject \ Code \ Shared.All \ Core \ StorageSqlCe .cs“不在SonarQube中。 (这是当我分析C:\ GitRepos \ myProject \ Code \ Server \项目时)

这不是一个真正的多模块项目(因为我不想分析所有的Shared.All目录 - 只有从我的项目链接的文件(服务器在这种情况下)

有没有人知道如何处理这个?如果我忽略什么在每个项目中,并分析Shared.All文件夹我会因ReSharper失败,因为我没有VS项目文件...

我无法更改代码的项目结构,并且在特殊文件夹中共享代码的设计可能不是最好的,但是是马的设计很久以前,我们必须忍受。那么,我该如何与Sonar合作?

回答

1

如果我理解正确的话,你有一个共享文件夹,位于文件系统在同级别您的项目:

  • Solution.sln
  • PROJECT1 \
    • ...
  • Project2的\
    • ...
  • 共享\
    • ...

如果您正在使用Visual Studio引导程序插件,你总是分析多模块项目:每个Visual Studio项目成为SonarQube模块。为解决方案本身创建一个主要项目(不含源代码)。

SonarQube有一个限制:模块的所有来源必须位于模块的文件夹内,例如为了计算相对路径(等)才能正常工作。

您的案例中的“共享”文件夹不属于任何项目,因此无法在SonarQube中导入。

您有几种选择:

  1. 接受了共享代码不被分析了SonarQube
  2. 不再依赖于Visual Studio的引导程序插件,并分析整体解决方案作为一个单一的SonarQube项目。但是,然后你会打其他限制(如https://jira.codehaus.org/browse/SONARFXCOP-36

我建议你选择1,短期内,在等待这张票在Visual Studio的引导程序不再创建SonarQube模块来实现:https://jira.codehaus.org/browse/SONARVS-59

相关问题