1

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

所以问题是:

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

4

1 回答 1

2

如果每个文件都有一个组件,无论如何都应该这样做,组件的 KeyPath 指向文件安装的位置(在本例中为 GAC)。您可以将组件键用作 MSI 注册表中条目的值字段中的标记。

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

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

于 2008-09-20T05:02:01.953 回答