如何在安装过程中在注册表中添加指向已安装EXE位置的密钥

时间:2014-04-01 02:48:29

标签: wix windows-installer registrykey

我正在使用Wix 3.7,作为我正在处理的应用程序安装的一部分,我需要添加一个自定义shell操作来调用某些文件扩展名的应用程序。

基本上,我需要在注册表中HKEY_CLASSES_ROOT根树下的某些扩展名的shell子键下添加一个键。

我已经想出如何添加密钥但我无法动态修改密钥的值以指向正在安装的exe。

这就是我所拥有的:

<DirectoryRef Id="TARGETDIR">
    <Component Id="RegistryEntries" Guid="PUT-GUID-HERE">
        <RegistryKey Root="HKCR"
                     Key="txt\shell\MyApplicationName"
              Action="createAndRemoveOnUninstall">
            <RegistryValue Type="string" Value="SOME_VALUE" KeyPath="yes"/>
        </RegistryKey>
    </Component>
</DirectoryRef>

基本上,我希望它不是SOME_VALUE而是引用安装文件夹和应用程序EXE的名称,后面跟着一些开关和参数。像这样:

"C:\Program Files\MyAppFolder\MyAppExe.EXE" /a /b "%1"

1 个答案:

答案 0 :(得分:2)

使用&#34; [#IdentifierOfExeFile]&#34;。这是一个格式化的字符串,将替换为具有指定ID的目标文件的完整路径。有关格式化字符串的选项的完整列表,请参阅http://msdn.microsoft.com/en-us/library/aa368609%28v=vs.85%29.aspx