void PatchResources() { ManifestResourceTable resourceTable = (ManifestResourceTable)stripped_tables [ManifestResourceTable.RId]; if (resourceTable == null) { return; } for (int i = 0; i < resourceTable.Rows.Count; i++) { ManifestResourceRow resourceRow = resourceTable [i]; if (resourceRow.Implementation.RID != 0) { continue; } foreach (Resource resource in assembly.MainModule.Resources) { EmbeddedResource er = resource as EmbeddedResource; if (er == null) { continue; } if (resource.Name != original.MetadataRoot.Streams.StringsHeap [resourceRow.Name]) { continue; } resourceRow.Offset = metadata_writer.AddResource(er.Data); } } }
public override void VisitEmbeddedResource(EmbeddedResource res) { AddManifestResource( m_mdWriter.AddResource(res.Data), res.Name, res.Flags, new MetadataToken(TokenType.ManifestResource, 0)); }