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

MSBuild中的SignFile任务:我们能让它更快吗?,msbuild,codesign,Msbuild,Codesign,我有这样的MSbuild任务来对项目的所有输出模块进行签名 <SignFile Condition="Exists('$(OutputPath)\%(FilesToSign.identity)')" CertificateThumbprint="$(THUMBPRINT)" SigningTarget="$(OutputPath)\%(FilesToSign.identity)" TimestampUrl="http://timestamp.ve

我有这样的MSbuild任务来对项目的所有输出模块进行签名

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


当我有很多文件时,需要相当长的时间(10分钟或更长)。可以并行运行,或者以其他方式加速运行。(我正在尝试对100多个文件进行签名..)

使用MsBuild进行并行生成的唯一方法是使用不同的MsBuild实例,从而创建不同的项目文件,我认为这里不建议这样做。您不能并行地执行任务或目标,但可以并行地构建项目(但可以创建多个项目文件,每个文件中有一个目标)。您可以在此处获得精度:

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


抱歉,我对SignFile任务了解不够,无法就如何优化它给出建议

另一种加速签名的方法是删除TimeStampUrl参数。对于发布版本(在签名上没有时间戳)来说,它可能不够好,但是对于开发版本来说,它已经足够好了

它以80-90%的速度加快了签名过程