2014-10-24 23 views
7

Ich habe Probleme beim Erstellen einer PCL in Xamarin Studio auf dem Mac. Es funktioniert gut im Debug-Modus, aber Fody löst eine Ausnahme im Release-Modus aus.Fody-Ausnahme im Freigabemodus Symboldatei .dll.mdb passt nicht zur Assembly .dll

Ausnahme während der Erstellung ist unten aufgeführt.

Error: Fody: An unhandled exception occurred: 
Exception: 
Symbol file `XXX/obj/Release/XXX.dll.mdb' does not match assembly `XXX/obj/Release/XXX.dll' 
StackTrace: 
at Mono.CompilerServices.SymbolWriter.MonoSymbolFile.CheckGuidMatch (Guid other, System.String filename, System.String assembly) [0x00000] in <filename unknown>:0 
    at Mono.CompilerServices.SymbolWriter.MonoSymbolFile..ctor (System.String filename, Mono.Cecil.ModuleDefinition module) [0x00000] in <filename unknown>:0 
    at Mono.CompilerServices.SymbolWriter.MonoSymbolFile.ReadSymbolFile (Mono.Cecil.ModuleDefinition module, System.String filename) [0x00000] in <filename unknown>:0 
    at Mono.Cecil.Mdb.MdbReaderProvider.GetSymbolReader (Mono.Cecil.ModuleDefinition module, System.String fileName) [0x00000] in <filename unknown>:0 
    at Mono.Cecil.ModuleReader.ReadSymbols (Mono.Cecil.ModuleDefinition module, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0 
    at Mono.Cecil.ModuleReader.CreateModuleFrom (Mono.Cecil.PE.Image image, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0 
    at Mono.Cecil.ModuleDefinition.ReadModule (System.IO.Stream stream, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0 
    at Mono.Cecil.ModuleDefinition.ReadModule (System.String fileName, Mono.Cecil.ReaderParameters parameters) [0x00000] in <filename unknown>:0 
    at InnerWeaver.ReadModule() [0x00000] in <filename unknown>:0 
    at InnerWeaver.Execute() [0x00000] in <filename unknown>:0 
Source: 
Mono.Cecil.Mdb 
TargetSite: 
Void CheckGuidMatch(System.Guid, System.String, System.String) 
+0

sind die Zeitstempel auf der mdb und die dll das Gleiche? – Simon

+1

hast du das jemals gelöst? – Simon

+1

Bitte markieren Sie @ Matthewrdev hat die richtige Lösung für dieses Problem. – jzeferino

Antwort

1

Sie bereits haben, aber ich würde mit diesem starten, wenn ich es war:

  • Rechts auf Ihrer Lösung klicken
  • Eigenschaften
  • Konfigurationseigenschaften/Konfiguration

In der "Konfiguration" Dropdown-Liste oben links, überprüfen Sie, dass die "Debug" -Konfiguration (re: Platform | Build | Deploy) ma tches "Freigeben".

13

Fody benötigt die Debuginformationen (* .mdb-Datei), die mit der ausgegebenen Baugruppe verknüpft sind, um den Webschritt auszuführen. Release Builds standardmäßig deaktivieren Sie die Debug Informationen Feld innerhalb Build ->Compiler in einem Projekteinstellungen.

Wenn diese Erstellungsoption auf None gesetzt ist, wird die Debug-Symbolisierung deaktiviert und die MDB-Datei wird nicht mehr synchronisiert, daher die Ausnahme Symbol file 'XXX/obj/Release/XXX.dll.mdb' does not match assembly XXX/obj/Release/XXX.dll.

Daher müssen Sie Symbole aktivieren Nur oder Voll, wenn Sie bauen Projekte im Release-Modus, wenn Fody in den Build-Prozess integriert ist:

enter image description here