1

プロジェクトのすべての出力モジュールに署名するために、このようなMSbuildタスクがあります。

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

ファイルが多いとかなり時間がかかります(10分以上)。並行して実行することも、他の方法で高速化することもできます。(100を超えるファイルに署名しようとしています。。)

4

2 に答える 2

2

署名を高速化する別の方法は、TimeStampUrlパラメーターを削除することです。リリースビルド(署名にタイムスタンプがない)には十分ではないかもしれませんが、開発ビルドには十分です。

また、署名プロセスが80〜90%高速化されます。

于 2011-04-06T06:02:58.547 に答える
1

MsBuildで並列ビルドを行う唯一の方法は、msbuildのさまざまなインスタンス、つまりさまざまなプロジェクトファイルを用意することです。ここでは、これはお勧めしません。タスクまたはターゲットを並行して実行することはできませんが、プロジェクトを並行してビルドすることはできます(ただし、それぞれに1つのターゲットを持つ複数のプロジェクトファイルを作成できます)。あなたはここで正確さを持っているかもしれません:MSBuildでタスクを並行して実行する方法

さらに、メモリではなく、ディスクアクセス速度によって制限されると思います。

SignFileタスクを最適化する方法についてアドバイスするのに十分なことはわかりませんが、申し訳ありません。

于 2010-10-05T16:30:13.050 に答える