MSBUILDのSignFileタスク:より速くすることはできますか?
質問
このようなMSBuildタスクがあり、プロジェクトのすべての出力モジュールに署名しています。
<SignFile Condition="Exists('$(OutputPath)\%(FilesToSign.identity)')"
CertificateThumbprint="$(THUMBPRINT)"
SigningTarget="$(OutputPath)\%(FilesToSign.identity)"
TimestampUrl="http://timestamp.verisign.com/scripts/timestamp.dll" />
ファイルがたくさんある場合は、かなりの時間(10分以上)かかります。並列または他の方法で物をスピードアップすることが可能です。 (私は100を超えるファイルに署名しようとしています..)
解決
署名を高速化する別の方法は、Timestampurlパラメーターを削除することです。リリースビルドには十分ではないかもしれません(署名にタイムスタンプがないため)が、開発ビルドには十分です。
80〜90%で署名プロセスをスピードアップします。
他のヒント
MSBuildで並行ビルドを行う唯一の方法は、MSBuildのさまざまなインスタンスを持つことです。タスクやターゲットをパラレルで実行することはできませんが、プロジェクトを並行して構築できます(ただし、それぞれに1つのターゲットを備えたいくつかのプロジェクトファイルを作成できます)。ここでは正確な場合があります: MSBuildで並行してタスクを実行する方法 .
さらに、私はあなたがあなたのメモリによってではなく、あなたのディスクアクセス速度によって制限されると思います。
ただし、サインファイルタスクが最適化する方法についてアドバイスを提供するのに十分なことを知りませんが、申し訳ありません。
所属していません StackOverflow