Сравните два результата fxcop - PullRequest
5 голосов
/ 14 апреля 2010

Я собираюсь проанализировать две разные версии одной и той же библиотеки DLL с помощью fxcop. Я хотел бы показать только различия между этими двумя отчетами. Кто-нибудь знает, возможно ли это?

Спасибо за ваше время.

Ответы [ 3 ]

2 голосов
/ 04 июня 2010

Используете ли вы интерфейс или командную строку?

С помощью инструмента командной строки у вас есть несколько вариантов. Одним из них является импорт старого отчета, который будет использоваться в качестве базового. Затем настройте проект fxcop так, чтобы он сообщал только о новых ошибках: Report Status = "Active, Absent" NewOnly = "True"

Командная строка будет выглядеть примерно так: fxcopcmd.exe /i:OldVersionReport.xml /out:NewVersionReport.xml /p:FXCopProject.fxcop /f:mydll.dll

В новом отчете будет только новая активная ошибка, а также список отсутствующих, т.е. исправленных ошибок старой версии.

Хотя это будет работать по большей части, вы должны понимать, что разница не будет на 100% точной. FXCop делает все возможное, чтобы сопоставить старый отчет с новой версией DLL, но иногда это не удается. Например, если вы исправили конкретное нарушение где-то в коде, но добавили тот же тип нарушения в другом месте, FXCop, скорее всего, пропустит это и не покажет никакой разницы.

2 голосов
/ 14 апреля 2010

Да, это возможно, но для этого нет встроенных инструментов.Одним из довольно простых подходов было бы использовать инструмент сравнения для сравнения двух отчетов.Если результат слишком шумный для вас, другой подход заключается в создании собственного инструмента для сравнения XML двух отчетов.

0 голосов
/ 14 ноября 2013

Для FxCop VS 2010 все, что вам нужно, это указать /saveMessagesToReport:Absent вместе со старым сгенерированным файлом FxCop /import:"OldFile.xml"Просто например.

     fxcopcmd.exe /import:"c:\Old.xml" /summary "/file:c:\*.dll" 
     /saveMessagesToReport:Absent /out:"c:\Output.xml"
...