繁体   English   中英

COM-Interop:将.NET Framework版本从2.0更改为4.0 - 我是否也应该更改Guids?

[英]COM-Interop: Change .NET Framework Version from 2.0 to 4.0 - Should I change the Guids also?

我喜欢将COM-Class从2.0迁移到4.0。 您是否还建议为类和不同的ProgId生成新的guid?

旧的课程将不再使用。 我知道我必须为mscorlib的新路径重新注册Class。

MS-Access使用CreateObject创建一个我的COM-Server类的实例,我的COM-Object使用DI加载一些其他类(dot.net 2.0和将来的4.0)

您只需在接口定义更改时使用新的GUID。 当它们保持不变时,新的COM服务器将替换现有的COM服务器。 并且不必重新编译使用它的客户端代码。 改变他们,那么他们可以生活并排的一面,但客户端代码必须明确地重新编译以使用新的一个。

请注意,.NET 4.0中的进程内并行CLR版本支持与此相关。 您的COM服务器可以在绑定.NET 4.0 CLR的程序中使用,即使COM服务器仍然绑定2.0 CLR。 从技术上讲,您不必更新它。

我不明白你为什么会改变Guid或者progid。 这意味着您必须重新编译此引用的所有内容。

只要你坚持二进制兼容性 ,你的合同的实现是什么版本的框架并不重要,它只是一个实现细节。

我迁移到DOT.net 4.0并进行了一些测试。 DOT.net 4.0可以使用2.0程序集,对我的DI场景没问题。

我唯一需要做的就是更新我的安装程序。 原因是,因为HKEY_CLASSES_ROOT \\ CLSID {COMGuid}控制了它必须使用的运行时版本。

“RuntimeVersion”= “v4.0.30319”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM