Задача SignFile в MSBuild: можем ли мы сделать это быстрее? - PullRequest
1 голос
/ 05 октября 2010

У меня есть задача MSbuild, чтобы подписать все выходные модули нашего проекта.

    <SignFile Condition="Exists('$(OutputPath)\%(FilesToSign.identity)')"
      CertificateThumbprint="$(THUMBPRINT)"
      SigningTarget="$(OutputPath)\%(FilesToSign.identity)"
      TimestampUrl="http://timestamp.verisign.com/scripts/timestamp.dll" />

Это занимает довольно много времени (10 минут или больше), когда у меня много файлов.Можно запустить вещи параллельно или другими способами ускорить его.(Я пытаюсь подписать более 100 файлов ..)

Ответы [ 2 ]

2 голосов
/ 06 апреля 2011

Еще один способ ускорить подписание - удалить параметр TimeStampUrl. Возможно, он недостаточно хорош для сборки выпуска (чтобы не было отметки времени в подписи), но достаточно для сборки разработки.

И это ускоряет процесс подписания на 80-90%.

1 голос
/ 05 октября 2010

Единственный способ выполнить параллельную сборку с помощью MsBuild - это иметь разные экземпляры msbuild, то есть разные файлы проекта, я не думаю, что здесь рекомендуется. Вы не можете выполнять задачу или цель в параллелях, но вы можете строить проект параллельно (но вы можете создать несколько файлов проекта с одной целью в каждой). Вы можете иметь точность здесь: Как запускать задачи параллельно в MSBuild .

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

Я недостаточно знаю задачу SignFile, чтобы дать совет о том, как ее оптимизировать, извините.

...