外部组件从第三方程序集中引发了异常

本文关键字:异常 集中 方程序 组件 外部 | 更新日期: 2023-09-27 18:27:02

我们使用与打印机设备接口的第三方混合模式组件。

在我们的一个应用程序中,程序集功能正常。

在另一个应用程序中,它生成了以下异常:

Mixed mode assembly is built against version 'v2.0.50727' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.

经过一些研究,我发现我可以在app.config文件中添加以下内容来解决这个问题:

<startup useLegacyV2RuntimeActivationPolicy="true">

(运行的应用程序在其app.config中已经有此设置)

虽然这确实解决了"混合模式组装"的问题,但现在我看到了一个不同的问题:

External component has thrown an exception

奇怪的是,我有一个应用程序可以正常工作,而另一个却不能。它们都通过相同的代码调用第三方程序集(这是我们的另一个程序集)。

我尝试创建一个非常简单的测试应用程序,它使用相同的代码路径调用第三方程序集,但它也失败了,并出现"外部组件引发异常"错误。

我比较了所有应用程序的app.config文件,它们基本上是相同的,并且我仔细检查了每个应用程序的所有构建设置是否相同。这两个项目都以.NET 4.0和X86为目标。

这两个应用程序显然有所不同,但我无法确定它是什么

开发环境为Visual Studio 2010。

有人对我可以调查的其他领域有什么建议吗?

外部组件从第三方程序集中引发了异常

@tsells是对的:缺少依赖

有问题的第三方程序集依赖于第一个应用程序bin文件夹中的另一个DLL。

我将工作应用程序的bin文件夹中的所有文件复制到非工作应用程序中的bin文件夹,它解决了问题。

从那以后,只需要推断出哪个DLL丢失了,并将其包含在第二个应用程序项目中。

当缺少依赖项时,可以使用CheckAsm(用于托管库)和Dependency Walker(用于非托管库)等工具来检查依赖项。