Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Windows Installer软件包添加的注册表项中引用GAC中程序集的路径?_C#_Com_64 Bit_Windows Installer_Com+ - Fatal编程技术网

C# 如何在Windows Installer软件包添加的注册表项中引用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

我有一个.NET程序集,其中包含通过EnterpriseServices(COM+)注册为ServicedComponent并由第三方应用程序通过COM RPC调用的类。因此,我需要将它添加到GAC中,并在
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中找到有关格式化字段的更多信息