Question

I have MSbuild task like this to sign all the output modules of our project.

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

It takes quite a while (10 minutes or more) when I have many files. It is possible to run stuff in parallel or in other ways speed it up. (I am trying to sign more than 100 files.. )

Was it helpful?

Solution

Another way of speeding up the signing is to remove the TimeStampUrl parameter. It may not be good enough for release build (to not have a time stamp on the signature), but it is good enough for a development build.

And it speeds up the signing process with 80-90%.

OTHER TIPS

The only way to do parallel build with MsBuild is to have different instances of msbuild, thus different project files, I don't think that's recommended here. You cannot do task or target in parallels, yet you can build project in parallel (but you can create several project files with one target in each). You may have precision here : How to run tasks in parallel in MSBuild .

Moreover, I think you will be limited by your disk access speed and not by your memory.

I don't know the SignFile task enough to give advice on how optimize it, though, sorry.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top