调用含MimeKit的类库创建MimeMessage时抛出文件未找到异常的解决方法
解决System.Runtime.CompilerServices.Unsafe程序集版本不匹配问题
出现这个问题是因为.NET Framework的程序集绑定机制在运行时试图加载旧版本的System.Runtime.CompilerServices.Unsafe(4.0.4.1),但你的项目实际依赖的是6.0.0版本,导致版本冲突。可以通过以下几种方式解决:
添加程序集绑定重定向
在控制台项目的app.config文件中,添加程序集绑定重定向配置,告诉CLR用已安装的6.0.0版本替代旧版本:<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>注意:如果
app.config中已有<runtime>或<assemblyBinding>节点,只需将<dependentAssembly>部分合并进去即可。直接安装对应版本的NuGet包
在控制台项目中安装System.Runtime.CompilerServices.Unsafe6.0.0版本的NuGet包,确保项目直接引用正确版本的程序集,同时NuGet会自动帮你生成程序集绑定重定向配置。检查项目引用并清理旧版本
右键控制台项目 → 管理NuGet程序包,查看已安装的System.Runtime.CompilerServices.Unsafe版本,确保是6.0.0;如果存在旧版本引用,先卸载旧版本再安装6.0.0版本。同时清理项目的bin和obj目录,避免残留旧版本程序集。
内容的提问来源于stack exchange,提问作者brendan davton
相关产品推荐
相关产品推荐

