Step1: 用 InstallShield 创建MSI 工程 MSIDemo.ism,设置允许用户更改安装路径(如下),并增加 Component。
Step 2: 编译工程,运行安装包。
Step 3: Win + R, 输入 Regedit ,进入注册表。
查找如下键值:
64bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
32bit: HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows\CurrentVersion\Uninstall
Uninstall 下的 subkey 存储的是安装包的 Product Code。
a> 在 MSI 工程中,查找ProductCode,如下:
b>或者用Orca 打开编译后的msi 文件,查找ProductCode, 如下:
根据ProductCode,查找对应的键值,在右侧就会看到程序的安装路径信息,如下:
贴士:
能在注册表中看到安装路径的前提是:MSI 工程中ARPINSTALLLOCATION 的设置不为空。
默认情况下,都是由工程自动设置的,不会为空。
如果手动将ARPINSTALLLOCATION 清空,或者将SetARPINSTALLLOCATION 这个 Custom Action 从 ExecuteSequence 中 删除,那么程序安装后,在注册表中InstallLocation 的值就会为空。
这种情况下,如何获取安装路径,待续。。。