Поделиться через


Инструментирование и повторная подпись сборок

Обновлен: Ноябрь 2007

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

Если тестируемая сборка была подписана строгим именем, то изменение кода за счет инструментирования сделает подпись недействительной. Поэтому Visual Studio автоматически пытается повторно подписать сборку непосредственно после завершения этапа инструментирования.

ms243141.alert_note(ru-ru,VS.90).gifПримечание.

Дополнительные сведения об этапах выполнения тестового запуска см. в разделе Общие сведения о развертывании тестов.

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

Strong name verification failed for the instrumented assembly 'SignedLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1696e096eba75082'. Please ensure that the right key file for re-signing after instrumentation is specified in the test run configuration.

Чтобы устранить эту ошибку, выполните следующие действия.

  • Повторная подпись сборки. При наличии файла, который использовался для подписи сборки, следует предоставить его Visual Studio для автоматической повторной подписи сборки.

  • Отключение проверки подписи. На компьютере, предназначенном для тестирования сборки, можно отключить проверку подписи. Это действие распространяется только на указанную сборку.

Повторная подпись сборки

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

Файл ключа, который будет использоваться Visual Studio для повторной подписи сборок со строгими именами, следует указывать в редакторе конфигураций тестового запуска. Дополнительные сведения о процедуре "Повторная подпись сборок" см. в разделе Практическое руководство. Получение данных о покрытии кода. Указание файла ключа добавит в процесс тестового запуска действие для повторной подписи. Visual Studio автоматически определит сборки для повторной подписи с использованием указанного файла ключа. Все сборки, для подписи которых использовался данный файл ключа, будут подписаны повторно.

ms243141.alert_note(ru-ru,VS.90).gifПримечание.

Сборки могут быть повторно подписаны только с помощью файла ключа, но не имени ключа.

Повторное подписание сборок происходит не полностью или не происходит вообще в следующих случаях.

  • Visual Studio не сможет повторно подписать сборку, если файл ключа недоступен. Следует заново создать файл ключа и повторить попытку подписи сборки.

  • Повторная подпись закончится неудачей, если файла ключа защищен паролем.

  • При тестовом запуске поддерживается только один файл ключа. Рассмотрим пример тестового запуска, ссылающегося на несколько сборок. Некоторые из этих сборок были подписаны с помощью одного файла ключа, другие — с помощью другого. Поскольку можно выбрать только один файл ключа, сборки, подписанные с помощью другого файла ключа, следует повторно подписать вручную. Если некоторые сборки останутся неподписанными на уровне тестового запуска возникнет ошибка. В этом случае можно отключить проверку подписи, как описано в разделе Отключение проверки подписи.

Отключение проверки подписи

Если повторная подпись завершилась неудачей, например, из-за отсутствия правильного файла ключа, пользователь может отключить проверку подписи для сборки на время тестового запуска. Для этого используйте Средство строгих имен (Sn.exe) с параметром –Vr, как показано ниже.

SN -Vr <имя_сборки>

Проверка строго имени отключится для указанной сборки только для компьютера, на котором выполняется команда.

ms243141.alert_note(ru-ru,VS.90).gifПримечание.

При удаленном выполнении тестов и необходимости отключения проверки подписи необходимо включить команду SN.exe в сценарии установки и очистки, которые будут выполняться на удаленном компьютере.

Для этого необходимо иметь соответствующие разрешения.

После завершения тестового запуска следует снова разрешить проверку подписи. Для этого используется команда SN.exe с параметром –Vu, как показано ниже.

SN -Vu <имя_сборки>

Для отключения и повторного включения проверки подписей рекомендуется использовать команду SN.exe в сценариях. Отключать проверку можно в сценарии установки, а повторно включать в сценарии очистки.

ms243141.alert_note(ru-ru,VS.90).gifПримечание.

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

После добавления команд SN в различные файлы сценариев следует указать эти файлы на странице сценариев установки и очистки в редакторе конфигураций тестового запуска. Дополнительные сведения см. в разделе Практическое руководство. Задание конфигурации тестового запуска. Сведения о последовательности этих и других действий в тестовом запуске см. в разделе Общие сведения о развертывании тестов.

См. также

Задачи

Практическое руководство. Задание конфигурации тестового запуска

Практическое руководство. Получение данных о покрытии кода

Практическое руководство. Подписание сборки строгим именем

Основные понятия

Общие сведения о развертывании тестов

Сборки со строгими именами

Ссылки

Средство строгих имен (Sn.exe)