【问题标题】:.net 3.5 COM loading 4.5.2 assembly.net 3.5 COM 加载 4.5.2 程序集
【发布时间】:2018-07-18 01:49:45
【问题描述】:

我有一个 C++ exe 文件。它创建了一个基于 .Net 3.5 的 COM 对象,该对象需要加载一个 .Net 4.5.2 程序集。

我尝试在 COM 对象项目中创建一个清单文件来指定:

<clrClass
   name="ComAssembly.MyClass"
   clsid="{67975F17-3D44-38C1-BC2C-B58E50A481F6}"
   runtimeVersion="v4.0.30319.34000"
   threadingModel="Both"
 />

但我仍然收到错误 8013101b(程序集是由新的运行时构建的......)

如何正确做?

【问题讨论】:

  • runtimeVersion 不正确,所以可能没有效果,使用“v4.0.30319”。

标签: c# .net com


【解决方案1】:

我最终更改了 COM 类 InprocServer32 和 InprocServer32\1.0.0.0 的注册表 RuntimeVersion 值。 它适用于 v4.0.30319.34000

【讨论】:

  • 嗯,不,当您要依赖注册表时,根本不要使用清单。并确保使用 Regasm.exe 获取正确的注册表项。手动破解密钥只会使其复杂且容易出错四倍。
猜你喜欢
  • 2012-02-20
  • 1970-01-01
  • 1970-01-01
  • 2016-04-18
  • 1970-01-01
  • 2012-10-15
  • 2010-11-20
  • 2020-01-24
相关资源
最近更新 更多