C# 发布模式符号文件.dll.mdb中的Fody异常与assembly.dll不匹配

C# 发布模式符号文件.dll.mdb中的Fody异常与assembly.dll不匹配,c#,.net,xamarin,fody,fody-propertychanged,C#,.net,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.Compile

我在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)
错误:Fody:发生未处理的异常:
例外情况:
符号文件'XXX/obj/Release/XXX.dll.mdb'与程序集'XXX/obj/Release/XXX.dll'不匹配
堆栈跟踪:
位于:0中的Mono.CompilerServices.SymbolWriter.MonoSymbolFile.CheckGuidMatch(Guid其他,System.String文件名,System.String程序集)[0x00000]
在Mono.CompilerServices.SymbolWriter.MonoSymbolFile..ctor(System.String文件名,Mono.Cecil.ModuleDefinition模块)[0x00000]中:0
位于:0中的Mono.CompilerServices.SymbolWriter.MonoSymbolFile.ReadSymbolFile(Mono.Cecil.moduledefinitionmodule,System.String filename)[0x00000]
位于:0中的Mono.Cecil.Mdb.MdbReaderProvider.GetSymbolReader(Mono.Cecil.moduledefinitionmodule,System.String文件名)[0x00000]
位于Mono.Cecil.ModuleReader.ReadSymbols(Mono.Cecil.ModuleDefinition module,Mono.Cecil.ReaderParameters参数)[0x00000]in:0
在Mono.Cecil.ModuleReader.CreateModuleFrom(Mono.Cecil.PE.Image,Mono.Cecil.ReaderParameters参数)[0x00000]中:0
在Mono.Cecil.ModuleDefinition.ReadModule(System.IO.Stream、Mono.Cecil.ReaderParameters参数)[0x00000]中:0
位于:0中的Mono.Cecil.ModuleDefinition.ReadModule(System.String文件名,Mono.Cecil.ReaderParameters参数)[0x00000]
在0中的InnerWeaver.ReadModule()[0x00000]处
在0中的InnerWeaver.Execute()[0x00000]处
资料来源:
Mono.Cecil.Mdb
目标地点:
Void CheckGuidMatch(System.Guid、System.String、System.String)

您可能已经知道了,但如果是我,我会从这个开始:

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

在左上角的“配置”下拉列表中,检查“调试”配置(re:Platform | Build | Deploy)是否与“Release”匹配。

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

将此生成选项设置为
None
将禁用调试符号化,并导致mdb文件不同步,因此
符号文件“XXX/obj/Release/XXX.dll.mdb”与程序集XXX/obj/Release/XXX.dll不匹配

因此,当Fody集成到构建过程中时,在发布模式下构建项目时,只需启用符号完整


mdb和dll上的时间戳是否相同?您解决过这个问题吗?请标记@matthewrdev对此问题有正确的解决方案。