public CreateSymbolFile ( System.Guid guid, |
||
guid | System.Guid | |
fs | ||
return | void |
public void WriteSymbolFile(Guid guid) { foreach (SourceMethodBuilder method in methods) { method.DefineMethod(file); } if (stream != null) { file.CreateSymbolFile(guid, stream); } else { try { // We mmap the file, so unlink the previous version since it may be in use PclFileAccess.Delete(filename); } catch { // We can safely ignore } using (var fs = PclFileAccess.CreateFileStream(filename)) { file.CreateSymbolFile(guid, fs); } } }
public void WriteSymbolFile(Guid guid) { foreach (SourceMethodBuilder method in methods) { method.DefineMethod(file); } try { // We mmap the file, so unlink the previous version since it may be in use File.Delete(filename); } catch { // We can safely ignore } using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write)) { file.CreateSymbolFile(guid, fs); } }
public void RewriteMdbFile (string inputFile) { Console.WriteLine ("Processing {0}", inputFile); var input = MonoSymbolFile.ReadSymbolFile (inputFile); var output = new MonoSymbolFile (); foreach (var s in input.Sources) { s.FileName = settings.Replace (s.FileName); output.AddSource (s); } foreach (var cu in input.CompileUnits) { cu.ReadAll (); output.AddCompileUnit (cu); } foreach (var m in input.Methods) { m.ReadAll (); output.AddMethod (m); } var mdbName = new FileInfo (inputFile).Name; var tmpMdb = Path.Combine (Path.GetTempPath (), mdbName); var finalMdb = inputFile; if (settings.OutputDirectory != null) finalMdb = Path.Combine (settings.OutputDirectory, mdbName); using (var stream = new FileStream (tmpMdb, FileMode.Create)) { output.CreateSymbolFile (input.Guid, stream); } input.Dispose (); File.Delete (finalMdb); new FileInfo (tmpMdb).MoveTo (finalMdb); }
static void MdbRebase(string mdbFile, string toRemove) { #if WINDOWS_BUILD Console.Error.WriteLine ("Warning: skipping MDB rebasing of {0} (not supported on Windows)", mdbFile); #else using (var input = MonoSymbolFile.ReadSymbolFile (mdbFile)) { var output = new MonoSymbolFile (); foreach (var source in input.Sources) { source.FileName = Path.Combine ( Path.GetDirectoryName (source.FileName), Path.GetFileName (source.FileName).Replace (toRemove, String.Empty) ); output.AddSource (source); } foreach (var compileUnit in input.CompileUnits) { compileUnit.ReadAll (); output.AddCompileUnit (compileUnit); } foreach (var method in input.Methods) { method.ReadAll (); output.AddMethod (method); } var tmpMdb = Path.GetTempFileName (); using (var stream = new FileStream (tmpMdb, FileMode.Create)) output.CreateSymbolFile (input.Guid, stream); File.Delete (mdbFile); File.Move (tmpMdb, mdbFile); } #endif }