1

我们的两个程序使用具有相同类 ID 的相同 COM 服务器(也是我们制造的)。每个程序在安装时都会将 COM 服务器文件复制到其文件夹中并regsvr32作为 COM 服务器。

问题是如何安装 COM 服务器,以便用户可以将我们的一个或两个程序以任何顺序安装到不同的文件夹中,并且可能有不同的版本。显然,不更改类 ID 是不可能的,而且配置很麻烦。理想情况下,我们希望为此使用清单并且不使用regsvr32.

问题是每次我读到关于无注册 COM(例如,这里versionassemblyIdentity. 版本号应该每晚构建一次,我完全不喜欢(自动)调整它的想法。我理解为什么指定对特定版本的依赖是好的,但在我们的场景中它完全没用。

有没有办法为 COM 服务器和消费者编写清单,以便他们不指定版本而只使用文件夹中恰好存在的文件的任何版本?还有一种方法可以将搜索限制在与消费者相同的文件夹中吗?

4

1 回答 1

0

Windows 仅在全局位置搜索清单,后跟应用程序目录。如果您没有在全局范围内安装任何东西,则搜索实际上被限制在同一个文件夹中。

如果您总是将 COM 服务器与 COM 客户端放在同一个文件夹中,那么它们实际上就是一个“软件单元”。version注意事项是不同软件单元之间的接口合同,因此在您的场景中并不重要。您可以从身份中省略版本属性,也可以将其设置为固定的值,例如“1.0.0.0”,知道此时,确保正确的版本控制故事取决于您分发软件的方式,而不是侧面-旁系系统。

于 2010-11-24T06:01:33.940 回答