MSBuild中的SignFile任务:我们可以让它更快吗?

时间:2010-10-05 13:01:18

标签: msbuild codesign

我有这样的MSbuild任务来签署我们项目的所有输出模块。

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

我有很多文件需要很长时间(10分钟或更长时间)。可以并行运行或以其他方式加速运行。 (我试图签署超过100个文件..)

2 个答案:

答案 0 :(得分:2)

加速签名的另一种方法是删除TimeStampUrl参数。它可能不适合发布版本(签名上没有时间戳),但它足以用于开发构建。

它加快了80-90%的签名过程。

答案 1 :(得分:1)

使用MsBuild进行并行构建的唯一方法是使用不同的msbuild实例,因此不同的项目文件,我不认为这是推荐的。您不能同时执行任务或目标,但您可以并行构建项目(但您可以创建多个项目文件,每个项目中都有一个目标)。您可以在此处获得精确度:How to run tasks in parallel in MSBuild

此外,我认为您将受到磁盘访问速度的限制而不受内存限制。

我不知道SignFile任务足以就如何优化它提供建议,但是,抱歉。