From 4b34dad7fdca8f289777c047a1f242be68e690bb Mon Sep 17 00:00:00 2001 From: Zoltan Varga Date: Thu, 30 May 2019 15:33:21 -0400 Subject: [PATCH] Fix writing symbols when using deterministic mvids. The ppdb file embeds the guid of the corresponding assembly. Fixes https://github.com/jbevain/cecil/issues/583. --- Mono.Cecil.Cil/PortablePdb.cs | 5 +++++ Mono.Cecil/AssemblyWriter.cs | 2 ++ 2 files changed, 7 insertions(+) diff --git a/Mono.Cecil.Cil/PortablePdb.cs b/Mono.Cecil.Cil/PortablePdb.cs index b5515ba91..a207d23e6 100644 --- a/Mono.Cecil.Cil/PortablePdb.cs +++ b/Mono.Cecil.Cil/PortablePdb.cs @@ -276,6 +276,11 @@ internal PortablePdbWriter (MetadataBuilder pdb_metadata, ModuleDefinition modul this.writer = writer; } + public void PatchMvid (Guid guid) + { + writer.PatchMvid (guid); + } + public ISymbolReaderProvider GetReaderProvider () { return new PortablePdbReaderProvider (); diff --git a/Mono.Cecil/AssemblyWriter.cs b/Mono.Cecil/AssemblyWriter.cs index 1e39197ee..15d0add33 100644 --- a/Mono.Cecil/AssemblyWriter.cs +++ b/Mono.Cecil/AssemblyWriter.cs @@ -126,6 +126,8 @@ static void Write (ModuleDefinition module, Disposable stream, WriterPar if (parameters.DeterministicMvid) { module.Mvid = ComputeGuid (stream.value); writer.PatchMvid (module.Mvid); + if (symbol_writer is PortablePdbWriter ppdb_writer) + ppdb_writer.PatchMvid (module.Mvid); } } } finally {