发布模式中的Fody异常符号文件.dll.mdb与程序集.dll不匹配

rid*_*00z 8 .net c# xamarin fody fody-propertychanged

我在Mac上的Xamarin Studio中构建PCL时遇到了问题.它在调试模式下工作正常但是fody在发布模式下抛出异常.

构建期间的异常如下所示.

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)
Run Code Online (Sandbox Code Playgroud)

mat*_*dev 16

Fody需要与输出的组件相关联的调试信息(*.mdb文件)来执行编织步骤.默认情况下,发布版本会在项目设置中关闭" 构建" - >" 编译器"中的" 调试信息"字段.

将此构建选项设置为None禁用调试符号并导致mdb文件不同步,因此Symbol file 'XXX/obj/Release/XXX.dll.mdb' does not match assembly XXX/obj/Release/XXX.dll异常.

因此,当Fody集成到构建过程中时,您需要在发布模式下构建项目时启用Symbols OnlyFull:

在此输入图像描述


Tea*_*Tam 1

你可能已经这样做了,但如果是我,我会从这个开始:

  • 右键单击您的解决方案
  • 特性
  • 配置属性/配置

在左上角的“配置”下拉列表中,检查“调试”配置(即:平台 | 构建 | 部署)是否与“发布”匹配。