Сравните два результата fxcop

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

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


person excepeiont32    schedule 14.04.2010    source источник
comment
Вы смогли завершить это?   -  person Rameez Ahmed Sayad    schedule 11.11.2013


Ответы (3)


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

person Nicole Calinoiu    schedule 14.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, скорее всего, пропустит это и не покажет никакой разницы.

person user358790    schedule 04.06.2010

Для 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"
person Rameez Ahmed Sayad    schedule 14.11.2013