2016-08-08 27 views

Antwort

1

Sie können das Tool dumpbin über eine Entwicklerbefehlseingabeaufforderung verwenden, z. eine cmd Zeile wie diese den Pfad zu der PDB-Datei in dem Debug Verzeichnis Abschnitt ähnlich zeigen, diese

Microsoft (R) COFF/PE Dumper Version 14.00.24213.1 
Copyright (C) Microsoft Corporation. All rights reserved. 


Dump of file YourAssembly.exe 

... 


    Debug Directories 

     Time Type  Size  RVA Pointer 
    -------- ------- -------- -------- -------- 
    570B267F cv   11C 0000264C  84C Format: RSDS, {241A1713-D2EF-4838-8896-BC1C9D118E10}, 1, 
    C:\temp\VS\obj\Debug\YourAssembly.pdb 

... 
1

ich gekommen, um die folgenden hacky Lösung

dumpbin /HEADERS YourAssembly.exe 

würde.
Es funktioniert für mich, aber ich kann seine Richtigkeit keine Gewähr :)

public string GetPdbFile(string assemblyPath) 
{ 
    string s = File.ReadAllText(assemblyPath); 

    int pdbIndex = s.IndexOf(".pdb", StringComparison.InvariantCultureIgnoreCase); 
    if (pdbIndex == -1) 
     throw new Exception("PDB information was not found."); 

    int lastTerminatorIndex = s.Substring(0, pdbIndex).LastIndexOf('\0'); 
    return s.Substring(lastTerminatorIndex + 1, pdbIndex - lastTerminatorIndex + 3); 
} 

public string GetPdbFile(Assembly assembly) 
{ 
    return GetPdbFile(assembly.Location); 
}