C# 如何在Windows Installer软件包添加的注册表项中引用GAC中程序集的路径?
我有一个.NET程序集,其中包含通过EnterpriseServices(COM+)注册为ServicedComponent并由第三方应用程序通过COM RPC调用的类。因此,我需要将它添加到GAC中,并在C# 如何在Windows Installer软件包添加的注册表项中引用GAC中程序集的路径?,c#,com,64-bit,windows-installer,com+,C#,Com,64 Bit,Windows Installer,Com+,我有一个.NET程序集,其中包含通过EnterpriseServices(COM+)注册为ServicedComponent并由第三方应用程序通过COM RPC调用的类。因此,我需要将它添加到GAC中,并在HKEY_CLASSES\u ROOT\CLSID\{CLSID}\CodeBase下添加一个注册表项,其中包含GAC文件夹中程序集DLL的路径。(我不能依靠regsvcs来完成,因为这是一个32位的程序集——它依赖于32位的第三方组件——而我之前提到的第三方应用程序无法在Wow6432Nod
HKEY_CLASSES\u ROOT\CLSID\{CLSID}\CodeBase
下添加一个注册表项,其中包含GAC文件夹中程序集DLL的路径。(我不能依靠regsvcs来完成,因为这是一个32位的程序集——它依赖于32位的第三方组件——而我之前提到的第三方应用程序无法在Wow6432Node中看到类)
因此,问题是:
要在GAC中创建的程序集的路径,或者至少是GAC文件夹本身的路径,是否可以在Windows Installer中作为属性使用,这些属性可以用于注册表项等的值?如果每个文件都有一个组件(无论如何都应该这样做),则组件的键路径指向安装文件的位置(在本例中为GAC)。您可以将组件键用作MSI中注册表项的值字段中的标记 假设您有一个程序集,该程序集的“assmb.dll”文件表中有一个文件项及其相应的组件,也有“assmb.dll”。您可以将注册表表中的值字段设置为将程序集注册为[$assmb.dll],并将解析为程序集的安装位置。如果此目录是GAC,则将解析为GAC的位置 您可以在MSI中找到有关格式化字段的更多信息