【问题标题】:Use Old .net dll inside Modern .net application [duplicate]在现代 .net 应用程序中使用旧 .net dll [重复]
【发布时间】:2020-06-02 20:42:10
【问题描述】:

我有一个名为 PcapNet.dll 的 .net dll 文件,该文件是 C++ WanPacket.dll 库的包装器。

但是PcapNet.dll 是用.net3.5 构建的, 每次我在现代 .net 应用程序中引用它eg, .net 4.7

向我显示此消息:

System.IO.FileLoadException: '混合模式程序集是针对运行时版本'v2.0.50727'构建的,如果没有其他配置信息,则无法在 4.0 运行时中加载。'

然后我添加了

<supportedRuntime version="v2.0" sku=".NETFramework,Version=v2.0"/>

App.config

这显示了下一条消息:

System.IO.FileLoadException:'无法加载文件或程序集'PcapNet.dll'或其依赖项之一。动态链接库 (DLL) 初始化例程失败。 (来自 HRESULT 的异常:0x8007045A)'

然后我将 TargetFrameWork 更改为 3.5。现在一切正常。我可以使用它。

但这是一个大问题,我不能坚持使用.net 3.5 我需要4.7,因为我将在wpf 应用程序中使用它。

那么我如何将这个遗留库 3.5 与现代 .net 4.7 一起使用。

注意:我没有这个库的源代码,只能访问dll

【问题讨论】:

标签: c# .net .net-assembly


【解决方案1】:

使用

<startup useLegacyV2RuntimeActivationPolicy="true">

解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    相关资源
    最近更新 更多