gpt4 book ai didi

c# - CLR2 编译的 C# COM 不适用于 .Net 4

转载 作者:行者123 更新时间:2023-12-03 20:37:27 24 4
gpt4 key购买 nike

有谁知道为什么在 CLR2 (.Net 3.5) 下编译的 C# 创建的 COM 库在仅与 CLR4(.Net 4) 一起使用时不起作用? COM 的 CLR2 中的 CLR4 中缺少什么?

我们在 app.config 中使用适当的启动来让 C# 在 CLR4/.Net 4 下运行:

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

在尝试创建我们的 COM 接口(interface)之前,所有 C# 的东西都有效。它提供了以下异常(exception):

Failed to load the runtime. (Exception from HRESULT: 0x80131700)



当我们尝试从 C++ 创建 COM 接口(interface)时,我们会遇到同样的问题。

一旦我们安装了 CLR2 (.Net 3.5),所有的 COM 东西都开始工作了。我们想知道发生了什么。

最佳答案

在 .NET 4 中编译程序集后,您可能需要使用 regasm.exe 来更新 RuntimeVersion。如果重新编译不是一个选项,您可能会将注册表中的 RuntimeVersion 从 v2.0.50727 更改为 v4.0.30319。这对我有用。我在这里找到了类似的答案:Using a .NET-2.0-targeted COM DLL in the GAC on a .NET-4-only system

关于c# - CLR2 编译的 C# COM 不适用于 .Net 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13237715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com