Visual Studio: покрытие кода не создается для подписанных сборок - PullRequest
1 голос
/ 31 августа 2009

Мы разрабатываем систему с использованием c # в Visual Studio 2008.

Когда я настраиваю VS для измерения своих dll и запускаю тесты, инструментируется только dll, который не подписан (хороший способ узнать, что мы забыли один).

Есть ли способ создать покрытие кода для подписанных dll или мне нужно отменить их подпись, запустить анализ и затем подписать их снова?

Спасибо

Шираз

Ответы [ 2 ]

3 голосов
/ 31 августа 2009

Причина, по которой вы не можете оснастить подписанную сборку, заключается в том, что процесс измерительной аппаратуры изменяет содержимое сборки. Это изменит хеш сборки, следовательно, сделает недействительной цифровую подпись.

Лучший подход - подписать сборку для прогона профилирования.

2 голосов
/ 01 сентября 2009

Как уже указывалось, подпись сборки становится недействительной при инструментировании (или иной модификации) подписанной сборки.

Ирония заключается в том, что инструментарию не требуется проводить анализ профилирования / покрытия, поскольку в .NET есть API для этого. Однако по какой-то непонятной причине анализ покрытия Visual Studio и профилировщик не используют этот API ...

Сторонние продукты, такие как профилировщики dotTrace и ANTS, или инструменты анализа покрытия, такие как NCover, используют подход API и, следовательно, не нуждаются в вмешательстве в сами сборки.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...