1

У меня возникла странная ошибка с сканером SonarQube для MSBuild (сканирование кода C#).Сканер SonarQube для MSBuild ищет тип под неправильной сборкой

При запуске инструмента на мой проект, я получаю эту ошибку:

"D:\Repro\Buggy.sln" (Rebuild target) (1) -> 
"D:\Repro\Buggy.Editor.csproj" (Rebuild target) (3) -> 
(RunCodeAnalysis target) -> 
    MSBUILD : error : CA0001 : Could not find type 'UnityEngine.UI.Selectable' in assembly 'UnityEditor.UI, Version=1.0.0.0, Culture=neutral'. [D:\Repro\Buggy.Editor.csproj] 

    2 Warning(s) 
    1 Error(s) 

Обратите внимание, что я был в состоянии создать минимальный «REPRO» проект, который демонстрирует эту ошибку (нашел here).

Трудно сказать, почему запуск MSBuild попытается найти тип под названием UnityEngine.UI.Selectable в этой сборке (этот тип существует, но в другой сборке).

Файл .sln, который я просматриваю, содержит 2 проекта (один ссылается на другой).

Как я могу узнать, что здесь происходит? и является ли это ошибкой в ​​сканере или как я использую этот инструмент?

+0

Просто, чтобы быть уверенным: никаких ошибок при компиляции в Visual Studio? –

+0

Нет ошибок при построении в VS или MSBuild (без сонара) –

+0

Вы когда-нибудь выясняли, что здесь происходит, или найдите решение/обход? Я получаю ту же проблему с Code Analysis в Visual Studio 2015. – Tallek

ответ

1

Наконец-то я смог найти причину этой проблемы.

Выполнение с использованием последней версии плагина C# (5.5.1.522), анализ все еще не выполняется с той же ошибкой.

Я также попытался выполнить анализ из VS2015 - не удалось с тем же сообщением об ошибке.

Копаем еще глубже - оскорбительная сборка UnityEditor.UI.dll изначально ссылается на требуемый UnityEngine.UI.dll, но каким-то образом обрабатывается, чтобы удалить эту ссылку на сборку.

Это причина отказа. При выполнении анализа используется «измененная» или модифицированная DLL.

Смотреть подробнее на эту тему я только что создал: https://forum.unity3d.com/threads/unityeditor-ui-dll-is-tampered-with-before-copying-to-library-unityassemblies.446053/

Я вернула DLL к оригинальной версии и все работает правильно. Итак, не ошибка SonarQube, но все еще раздражающая (и странная!)

Эта обработка сборок завершена Я верю VSTU (Visual Studio Tools for Unity), а также связался с одним из разработчиков этого проекта - Jb Evain, в настоящее время ждет исправления).