mhe*_*384 7 com versions regasm
我有一个.NET DLL(碰巧用C++/CLI编写).它的一部分我想通过COM公开.我这样做并使用"regasm my.dll/codebase"注册它.到现在为止还挺好.但后来我更改了一些东西和程序集更改的版本号加上我将dll移动到另一个文件夹.我再次注册它,并在OLE/COM查看器中查看我的COM对象.我看到这样的事情
InprocServer32 [Codebase] = file://c://foo/bar/my.dll 7.0.0.0 [Class] = My.Blah.Class 7.0.0.0 [Assembly] = Sync, Version=7.0.0.0, Culture=neutral, PublicKeyToken=1dd19234234 7.0.0.0 [RuntimeVersion] = v2.0.50727 7.0.0.0 [CodeBase] = file://c:/dooby/do/my.dll 7.0.0.27397 [Class] = My.Blah.Class 7.0.0.27397 [Assembly] = Sync, Version=7.0.0.27397, Culture=neutral, PublicKeyToken=1dd19234234 7.0.0.27397 [RuntimeVersion] = v2.0.50727 7.0.0.27397 [CodeBase] = file://c://foo/bar/my.dll
有关多个版本的问题:
所以我认为注册的最后一个COM对象获胜.如果我注册了旧的7.0.0.0 COM对象并不重要,7.0.0.27397是我在实例化COM对象时创建的,因为我最后注册了它.那是对的吗?
哎呀我没有留在7.0.0.0对象.有没有办法摆脱它?有没有办法删除所有版本的COM对象,而不是进入注册表并手动打击它?
出于好奇,如果我特意想要实例化我的COM对象的特定版本,有没有办法做到这一点?(如果你想给出代码示例,我正在使用C++).
有什么方法我可以告诉regasm不存储版本号,因为它似乎是混乱的东西,我看不出有什么好处.如果我的COM对象经历了重大的API更改,我只需更改GUID和progid,对吧?如果我不想注册多个版本(我没有),该怎么办?
出于这个原因,我总是使用静态AssemblyVersion设置我的COM可见组件.如果要使用版本标记二进制文件,请改用AssemblyFileVersion.
| 归档时间: |
|
| 查看次数: |
4144 次 |
| 最近记录: |