首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >COM-Interop:将.NET框架版本从2.0更改为4.0 -我是否也应该更改Guids?

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

Stack Overflow用户
提问于 2010-10-19 21:58:16
回答 3查看 2.1K关注 0票数 4

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

旧的类将不再被使用。我知道我必须重新注册类,才能进入mscorlib的新路径。

MS-Access用CreateObject创建一个实例,COM对象用DI加载一些其他类(dot.net 2.0和未来的4.0)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-19 22:49:08

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

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

"RuntimeVersion"="v4.0.30319“

票数 0
EN

Stack Overflow用户

发布于 2010-10-19 22:04:03

只有在接口定义发生更改时,才需要使用新的GUID。保持它们不变时,新的COM服务器将替换现有的COM服务器。并且使用它的客户端代码不需要重新编译。当您更改它们时,它们可以并存,但客户端代码必须显式重新编译才能使用新的代码。

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

票数 7
EN

Stack Overflow用户

发布于 2010-10-19 22:03:30

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

只要您坚持使用二进制兼容性,那么您的契约的实现是什么版本都无关紧要,只需要一个实现细节即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3969106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档