2014-10-24 12 views
7

Tôi gặp sự cố khi xây dựng PCL trong Xamarin Studio trên Mac. Nó hoạt động tốt trong chế độ gỡ lỗi nhưng fody ném một ngoại lệ trong Chế độ phát hành.Ngoại lệ Fody trong Tệp Chế độ Phát hành .dll.mdb không khớp với assembly .dll

Ngoại lệ trong khi xây dựng được liệt kê bên dưới.

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

là timestamps trên mdb và dll giống nhau? – Simon

+1

bạn đã từng giải quyết vấn đề này chưa? – Simon

+1

Vui lòng đánh dấu @matthewrdev có giải pháp đúng cho vấn đề này. – jzeferino

Trả lời

1

Bạn có thể đã, nhưng tôi muốn bắt đầu với điều này nếu đó là tôi:

  • Nhấp chuột phải vào giải pháp của bạn
  • Thuộc tính
  • Configuration Properties/Cấu hình

Trong trình đơn thả xuống "Cấu hình" ở trên cùng bên trái, hãy kiểm tra xem cấu hình "Gỡ lỗi" (lại: Nền tảng | Xây dựng | Triển khai) ma tches "Phát hành".

13

Fody cần thông tin gỡ lỗi (* .mdb file) được liên kết với cụm được xuất ra để thực hiện bước dệt. Bản phát hành bản phát hành theo mặc định sẽ tắt trường Thông tin gỡ lỗi trong phạm vi Xây dựng ->Trình biên dịch trong cài đặt dự án.

Có tùy chọn xây dựng này được đặt thành None vô hiệu hóa biểu tượng gỡ lỗi và kết quả trong tệp mdb bị mất đồng bộ, do đó ngoại lệ Symbol file 'XXX/obj/Release/XXX.dll.mdb' does not match assembly XXX/obj/Release/XXX.dll.

Vì vậy, bạn cần phải kích hoạt Biểu tượng Chỉ hoặc Full khi bạn xây dựng các dự án trong chế độ phát hành khi Fody được tích hợp vào quá trình xây dựng:

enter image description here

Các vấn đề liên quan