我正在为客户端/服务器应用程序编写几个安装包。我正在使用Wix工具包,并且根据建议,每个DLL都被包装为具有唯一ID的自己的组件。
需要在两个软件包中安装一些常见的DLL。这些DLL应该具有相同的组件GUID,还是应该在每个包中都不同?
答案 0 :(得分:5)
鉴于您对我的评论的回复,如果客户端和服务器都安装在同一台机器上,那将会特别糟糕。
来自Windows Installer Components:
共享相同组件ID的两个组件被视为同一组件的多个实例,无论其实际内容如何。 在用户的计算机上只安装了任何组件的单个实例。
(强调补充)。
加:
- 每个组件必须存储在一个文件夹中。
以下要点听起来可能与这些内容相矛盾:
- 不得将文件,注册表项,快捷方式或其他资源作为多个组件的成员发送。
但实际上是反过来说 - 如果你有两个安装程序将相同的DLL安装到相同的位置,那么它们必须属于同一个组件。它是文件的位置(以及它的名称,其中的位,版本等),这很重要。
Re:我的回答的第一行,并给出你打算做什么 - 如果安装了服务器(服务器目录中的DLL),然后安装了客户端,那么DLL将不出现在GAC中,因此客户端应用程序无法运行。
答案 1 :(得分:1)