Убрать подпись dll в Visual Studio скриптом - PullRequest
1 голос
/ 15 сентября 2009

У нас есть решение C # с ок. 55 проектов, в том числе тестовые.

Поскольку часть проекта является sharepoint, все dll подписаны.

Мы хотели бы запустить модульные тесты с покрытием кода. Затем мы получаем проблему, что покрытие кода не может подписать DLL.

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

Вопрос: можно ли каким-либо образом автоматизировать это? (Чтобы уйти в отставку, я могу просто отменить заказ)

1 Ответ

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

Да, это просто. Параметр подписи ключа хранится в файле проекта, который является просто XML. Напишите скрипт для обхода этого файла и удалите настройки для подписи.

  1. Удалить настройки XML в файле .csproj, который определяет подпись
  2. Перестроить проект (ы), используя msbuild
  3. Запустите свои модульные тесты для этих перестроенных библиотек DLL.
  4. Снова просмотрите файл .proj и добавьте настройки обратно.
  5. Перекомпилируйте с использованием подписи.

В файле .csproj вы ищете следующие две строки для удаления:

<SignAssembly>true</SignAssembly>
<AssemblyOriginatorKeyFile>MyKey.snk</AssemblyOriginatorKeyFile>
...