2014-10-24 7 views
7

Sto riscontrando problemi nella creazione di un PCL in Xamarin Studio su Mac. Funziona bene in modalità di debug, ma fody lancia un'eccezione in modalità di rilascio.Fody Eccezione in modalità di rilascio File simbolo .dll.mdb non corrisponde all'assembly .dll

L'eccezione durante la compilazione è elencata di seguito.

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

sono i timestamp sul mdb e la dll lo stesso? – Simon

+1

hai mai risolto questo? – Simon

+1

Si prega di contrassegnare @matthewrdev ha la soluzione corretta per questo problema. – jzeferino

risposta

1

Potrebbe essere già, ma mi piacerebbe iniziare con questo, se mi fosse:

  • Fare clic destro sul vostro soluzione
  • Proprietà
  • Proprietà di configurazione/Configuration

Nel menu a discesa "Configurazione" in alto a sinistra, verificare che la configurazione "Debug" (per esempio: Platform | Build | Deploy) ma "Rilascio".

13

Fody ha bisogno delle informazioni di debug (file * .mdb) associate all'assieme emesso per eseguire la fase di tessitura. Rilasciare le build per impostazione predefinita disattivare il campo Informazioni di debug all'interno di Build ->Compiler nelle impostazioni di un progetto.

Avendo questa opzione di compilazione impostata su None disabilita la simbolizzazione del debug e i risultati nel file mdb sfuggono alla sincronizzazione, da cui l'eccezione Symbol file 'XXX/obj/Release/XXX.dll.mdb' does not match assembly XXX/obj/Release/XXX.dll.

Pertanto è necessario attivare le Simboli Solo o completa quando si generano progetti in modalità di rilascio, quando Fody è integrato nel processo di compilazione:

enter image description here

Problemi correlati