Я собираюсь проанализировать две разные версии одной и той же dll с помощью fxcop. Я хотел бы отобразить только различия между этими двумя отчетами. Кто-нибудь знает возможно ли это ?
Спасибо за ваше время.
Я собираюсь проанализировать две разные версии одной и той же dll с помощью fxcop. Я хотел бы отобразить только различия между этими двумя отчетами. Кто-нибудь знает возможно ли это ?
Спасибо за ваше время.
Да, это возможно, но встроенных инструментов для этого нет. Одним из довольно простых подходов было бы использование инструмента сравнения для сравнения двух отчетов. Если результат слишком зашумлен для вас, другим подходом может быть развертывание вашего собственного инструмента для сравнения XML двух отчетов.
Вы используете пользовательский интерфейс или командную строку?
С помощью инструмента командной строки у вас есть несколько вариантов. Один из них — импортировать старый отчет для использования в качестве основы. Затем настройте проект 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, скорее всего, пропустит это и не покажет никакой разницы.
Для 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"