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

在我们的一个应用程序中,组装正常运行。

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

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文件,它们基本相同,并且我仔细检查了所有构建设置对每个构建设置相同。 Projects目标.NET 4.0和x86。

这两个应用程序显然是不同的,但我陷入困境,以确定它是什么。

开发环境是Visual Studio 2010。

有没有人对我可以调查的其他领域有任何建议?

有帮助吗?

解决方案

@tsells是对的:有一个缺少的依赖关系

问题中的第三方装配依赖于第一个应用程序箱文件夹中存在的另一个DLL。

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

从那里,这只是一个努力缺少哪个DLL并在第二个应用程序项目中包括它。

其他提示

当存在依赖项时,您可以使用像 charm for managed和依赖性walker 用于非托管图书馆以检查依赖项。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top