我有一个.NET程序集,其中包含通过EnterpriseServices(COM +)注册为ServicedComponent并由第三方应用程序通过COM RPC调用的类。因此,我需要将它添加到GAC并在 HKEY_CLASSES_ROOT \ CLSID \ {clsid} \ CodeBase 下添加一个注册表项,其中包含GAC文件夹中程序集DLL的路径。 (我不能依赖regsvcs来做,因为这是一个32位的程序集 - 它依赖于32位第三方组件---而我之前提到的第三方应用程序无法看到类中的Wow6432Node)

所以问题是:

是否要在GAC中创建程序集的路径,或者至少是GAC文件夹本身的路径,在Windows Installer中可用作可以在注册表项值等中使用的属性。

有帮助吗?

解决方案

如果每个文件都有一个组件,无论如何,组件的KeyPath指向文件的安装位置(在本例中为GAC)。您可以在MSI中的Registry表中的条目的值字段中使用组件密钥作为标记。

假设在“assmb.dll”的File表中有一个带有File键的程序集。及其相应的组件,也称为“assmb.dll”。您可以在Registry表中设置值字段以将程序集注册到[$ assmb.dll],它将被解析为程序集的安装位置。如果此目录是GAC,它将被解析为GAC的位置。

您可以在MSI中找到有关格式化字段的更多信息此处

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top