示例#1
0
 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);
     }
 }