public void Save(string newFilename, MetaDataFlags mdFlags, IModuleWriterListener writerListener) { if (module.IsILOnly) { var writerOptions = new ModuleWriterOptions(module, writerListener); writerOptions.MetaDataOptions.Flags |= mdFlags; writerOptions.Logger = Logger.Instance; if (Logger.Instance.ForcePDBGeneration) { writerOptions.WritePdb = true; module.CreatePdbState(); } module.Write(newFilename, writerOptions); } else { var writerOptions = new NativeModuleWriterOptions(module, writerListener); writerOptions.MetaDataOptions.Flags |= mdFlags; writerOptions.Logger = Logger.Instance; writerOptions.KeepExtraPEData = true; writerOptions.KeepWin32Resources = true; if (Logger.Instance.ForcePDBGeneration) { writerOptions.WritePdb = true; module.CreatePdbState(); } module.NativeWrite(newFilename, writerOptions); } }