2010-10-05 5 views
1

J'ai une tâche MSbuild comme celle-ci pour signer tous les modules de sortie de notre projet.Tâche SignFile dans MSBuild: Peut-on le rendre plus rapide?

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

Il me faut un certain temps (10 minutes ou plus) lorsque j'ai beaucoup de fichiers. Il est possible de faire tourner des choses en parallèle ou d'une autre manière pour l'accélérer. (Je tente de signer plus de 100 fichiers ..)

Répondre

2

Une autre façon d'accélérer la signature consiste à supprimer le paramètre TimeStampUrl. Ce n'est peut-être pas assez bon pour la version release (ne pas avoir un horodatage sur la signature), mais c'est assez bon pour une version de développement.

Et il accélère le processus de signature avec 80-90%.

1

La seule façon de faire une construction parallèle avec MsBuild est d'avoir différentes instances de msbuild, donc des fichiers de projets différents, je ne pense pas que ce soit recommandé ici. Vous ne pouvez pas faire de tâche ou de cible en parallèle, mais vous pouvez construire un projet en parallèle (mais vous pouvez créer plusieurs fichiers de projet avec une cible dans chaque). Vous pouvez avoir une précision ici: How to run tasks in parallel in MSBuild.

En outre, je pense que vous serez limité par votre vitesse d'accès au disque et non par votre mémoire.

Je ne connais pas la tâche SignFile assez pour donner des conseils sur comment l'optimiser, cependant, désolé.