This commit adds a new parameter to PortablePdbWriter.WritePdb that
allows the caller to provide an implementation of IProgress to receive
status updates on the pdb generation process. Currently, the progress
reports include the number of files generated so far and the total
number of files.
This commit adds a new parameter to PortablePdbWriter.WritePdb that
allows the caller to specify the exact Guid and timestamp that should be
used in the generated PDB. This will be useful for several scenarios
that are interesting for the Visual Studio debugger's integration:
1. Generating a PDB for an assembly that was built without debug info.
The PDB writer currently fails in this case, since the input assembly
has no debug directory from which to extract the relevant info. The
debugger can provide values that will allow us to load the generated
PDB.
2. Generating a PDB for an assembly that has multiple debug directories.
The PDB writer currently uses the first debug directory it finds, but
this isn't necessarily the correct one. The debugger can provide the
correct values.
While support for multi-module assemblies isn't fully working yet; it is clear at this point that we want
to treat each module in a multi-module assembly separately for the purposes of the type system.