Installsheild 64位平台打包注意事项

1、安装目录

64位系统下,安装目录分Program Files和Program Files(x86)。

64bit Application会自动安装在Program Files下;

32bit Application会自动安装在Program Files(x86)下。

2、系统目录 

64位系统下,系统目录分system32和syswow64。 

64bit AP 运行在system32下;

32bit AP 运行在syswow64下。

Installshield打包注意事项:
问题
:当32位的AP调用WINSYSDIR变量时,会默认指向syswow64,就算是调用WINDIR^"system32",也会被强迫指向syswow64。
解决:Disable(WOW64FSREDIRECTION)
WOW64FSREDIRECTION:起着判断64位系统下调用哪个系统变量的作用,Disable掉后,就会默认指向system32。
注意:当安装进行完后,记得Enable(WOW64FSREDIRECTION),以避免影响系统的其他程序。

经验:
在Installing()事件中Disable(WOW64FSREDIRECTION);

 在Installed()事件中Enable(WOW64FSREDIRECTION);

这样整个安装过程就不用去考虑何时开关了。

同样,卸载的过程中也得在UnInstalling()和UnInstalled()中这样做,才会卸载掉对应的部分。

3、注册表

64位系统下,注册表分HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
  和HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run

让32bit AP注册在默认的注册表HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run中,命令:REGDB_OPTIONS = REGDB_OPTIONS | REGDB_OPTION_WOW64_64KEY;

同时,用完也记得REGDB_OPTIONS = REGDB_OPTIONS & ~REGDB_OPTION_WOW64_64KEY;

发布了71 篇原创文章 · 获赞 23 · 访问量 28万+

猜你喜欢

转载自blog.csdn.net/ssmile/article/details/86540088