无法加载文件或程序集 SMDiagnostics.dll

Posted

技术标签:

【中文标题】无法加载文件或程序集 SMDiagnostics.dll【英文标题】:Could not load a file or assembly SMDiagnostics.dll 【发布时间】:2012-06-09 09:00:57 【问题描述】:

我正在尝试构建包含 18 个项目的 c# .NET 解决方案。出乎意料的是,我的一个项目(网络 gui)收到一条奇怪的错误消息。

错误如下

"Error 1839 'Could not load file or assembly 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\SMDiagnostics\v4.0_4.0.0.0__b77a5c561934e089\SMDiagnostics.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.'"

除一个项目外,所有项目都在 .net framework 3.5 上运行,但我的机器上安装了 framework 4.0。 Visual Studio 正在尝试从 4.0 而不是 3.5 加载文件(我尝试将文件移动到 3.5,但没有成功)

有谁知道这里出了什么问题或知道我能做些什么来解决这个问题?

问候 胃口

【问题讨论】:

检查项目中配置的框架版本。搜索“4.0”文本并再次尝试构建。 在项目属性中(右键单击项目 => 属性)。在应用程序选项卡中 所有项目都是 3.5,除了一个是 2.0。程序集信息 -> 程序集版本是否必须与框架版本相同? 面临同样的问题。如果您被授权将目标框架升级到 4.0,Nandan 的答案可以工作。但我做不到。我的项目来自 DEV Express 和其他 3.5 项目的二进制文件,让我知道问题是否有任何真正的解决方案?? 【参考方案1】:

我突然遇到了同样的错误。项目目标框架设置为 3.5。将其更改为 4.0,我能够成功构建。

【讨论】:

【参考方案2】:

我所有的项目都设置为使用 .NET 4.0,其他答案对我不起作用,但最终想通了。简单:

    右键单击 Visual Studio 并“以管理员身份运行” 在新打开的 Visual Studio 实例中,打开您的解决方案并运行它。

对我来说,它按预期工作。 感谢 this answer 帮助我解决这个问题。

【讨论】:

以上是关于无法加载文件或程序集 SMDiagnostics.dll的主要内容,如果未能解决你的问题,请参考以下文章

无法加载文件或程序集,但已加载

无法加载文件或程序集 'PayPalAdaptivePaymentsSDK,版本 = 2.12.117.0

无法加载文件或程序集。找到的程序集的清单定义与程序集引用不匹配

无法加载文件或程序集'netstandard,版本 = 2.0.0.0

无法加载文件或程序集 此处的程序集名称 或其依赖项之一。访问被拒绝

无法加载文件或程序集或其依赖项之一