Windows Installer 把安装目录写到注册表里的方法
文章目录
在用 Visual Studio 2005 建立生成安装文件的工程时,因为应用程序的需要,在安装的时候要求 Windows Installer 把用户选择的安装路径写到注册表里。这个时候,有什么解决办法呢?
可以在生成安装文件的工程里,手动插入一个系统预留的属性值(即需要转义的字符串),在 Windows Installer 安装程序的时候,会自动把这些属性值替换掉。可以用 [] 或 {} 来把该属性值括起来。
例如,右键点击”安装工程名称 ==> 视图 ==> 编辑器 ==> 注册表”,这时,可以添加如下注册表项:
HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE\Software\[Manufacturer]\
这样,在 Windows Installer 安装程序的时候, [Manufacturer] 就会自动转义为实际的值。当然,如果没有对应的系统预留属性值,则转义为空值( blank )。
系统预留的属性值有很多个,例如对于安装目录来说,是 [TARGETDIR] ,即 [TARGETDIR] 会根据安装时用户选择的安装路径赋值。当你在注册表里,需要填写程序安装路径的时候,就可以用这个属性值来占位。Windows Installer 在安装的时候,自然会把它替换为实际路径。安装后,会显示为类似于下面的路径:
C:\Program Files\TestApp\TestAppFirstPart\
如果你需要在注册表里指定相应的可执行文件或动态链接库,比如说,你要在注册表里插入下面的路径:
C:\Program Files\TestApp\TestAppFirstPart\test.dll
这时,你就应该在工程里把属性值设为:
[TARGETDIR]test.dll
注意 [TARGETDIR] 生成的目录会有最后一个 ** 号。
更多 Windows Installer 使用技巧可以看 Windows Installer (MSI) Tips and Notes。
文章作者 cookwhy
上次更新 2010-08-25