我一直在使用Mailkit 2.15,现在尝试升级到v3.4.1。当我升级时,安装了它的所有依赖项,包括System.Runtime.CompilerServices.Unsafe v4.5.3。但是当我执行代码时,发生了以下异常。
13-Oct-2022 16:33:19,303 [INFO ] Mail SendEmail - System.IO.FileLoadException: Could not load file or assembly 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'System.Runtime.CompilerServices.Unsafe, Version=4.0.4.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
at System.Span`1..ctor(T[] array)
at MimeKit.Utils.ValueStringBuilder..ctor(Int32 initialCapacity)
at MimeKit.Utils.Rfc2047.Encode(FormatOptions options, Encoding charset, String text, Boolean phrase)
at MimeKit.Header.EncodeUnstructuredHeader(ParserOptions options, FormatOptions format, Encoding encoding, String field, String value)
at MimeKit.Header.EncodeAddressHeader(ParserOptions options, FormatOptions format, Encoding encoding, String field, String value)
at MimeKit.Header.FormatRawValue(FormatOptions format, Encoding encoding, String value)
at MimeKit.Header.SetValue(FormatOptions format, Encoding encoding, String value)
at MimeKit.Header..ctor(Encoding encoding, HeaderId id, String value)
at MimeKit.HeaderList.set_Item(HeaderId id, String value)
at MimeKit.MimeMessage..ctor()
当我进一步调查时,我注意到MimeKit需要System.Memory,并且System.Memory安装了System.Runtime.CompilerServices.Unsafe v4.5.3。但是我不确定为什么仍然需要[System.Runtime.CompilerServices.Unsafe,Version=4.0.4.1]。
注意:在Mailkit 3.4.1升级之前,我的项目不依赖于System.Runtime.CompilerServices.Unsafe,并且它没有在参考中列出。
1条答案
按热度按时间6bc51xsx1#
这个问题显然是核心MSBuild目的中的已知错误,可能是因为System.Runtime.CompilerServices.Unsafe使用(?)的版本化配置不一致。我不完全清楚问题是什麽。而且听起来这个问题已经在较新版本的MSBuild目的(较新版本的Visual Studio?)中修正。
在任何情况下,将以下App.config文件添加到项目中都应该可以解决程序集解析问题:
另一种可能性是尝试升级Visual Studio(尽管我不确定这是否可行)。