gpt4 book ai didi

c# - Release模式符号文件 .dll.mdb 中的 Fody 异常与程序集 .dll 不匹配

转载 作者:太空狗 更新时间:2023-10-29 18:13:13 26 4
gpt4 key购买 nike

我在 Mac 上的 Xamarin Studio 中构建 PCL 时遇到问题。它在 Debug模式下工作正常,但 fody 在 Release模式下抛出异常。

构建期间的异常如下所列。

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 需要与输出程序集关联的调试信息(*.mdb 文件)来执行织入步骤。默认情况下,发布版本会关闭项目设置中 Build -> Compiler 中的 Debug Information 字段。

将此构建选项设置为 None 会禁用调试符号并导致 mdb 文件不同步,因此 Symbol 文件 'XXX/obj/Release/XXX.dll.mdb ' 不匹配程序集 XXX/obj/Release/XXX.dll 异常。

因此,当 Fody 集成到构建过程中并以 Release模式构建项目时,您需要启用Symbols OnlyFull:

enter image description here

关于c# - Release模式符号文件 .dll.mdb 中的 Fody 异常与程序集 .dll 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26542339/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com