我有这样的MSbuild任务来签署我们项目的所有输出模块。
<SignFile Condition="Exists('$(OutputPath)\%(FilesToSign.identity)')"
CertificateThumbprint="$(THUMBPRINT)"
SigningTarget="$(OutputPath)\%(FilesToSign.identity)"
TimestampUrl="http://timestamp.verisign.com/scripts/timestamp.dll" />
我有很多文件需要很长时间(10分钟或更长时间)。可以并行运行或以其他方式加速运行。 (我试图签署超过100个文件..)
答案 0 :(得分:2)
加速签名的另一种方法是删除TimeStampUrl参数。它可能不适合发布版本(签名上没有时间戳),但它足以用于开发构建。
它加快了80-90%的签名过程。
答案 1 :(得分:1)
使用MsBuild进行并行构建的唯一方法是使用不同的msbuild实例,因此不同的项目文件,我不认为这是推荐的。您不能同时执行任务或目标,但您可以并行构建项目(但您可以创建多个项目文件,每个项目中都有一个目标)。您可以在此处获得精确度:How to run tasks in parallel in MSBuild。
此外,我认为您将受到磁盘访问速度的限制而不受内存限制。
我不知道SignFile任务足以就如何优化它提供建议,但是,抱歉。