码迷,mamicode.com
首页 > 其他好文 > 详细

制作32位和64位整合的安装包

时间:2015-01-09 12:26:21      阅读:454      评论:0      收藏:0      [点我收藏+]

标签:

环境:

打包工具:IS2014

工程类型:Installscript

              

步骤:

1.将32位的文件和64位的文件放在两个独立的component下

技术分享

2.分别设置两个component 的属性

1)32位的component 设置64 bit component为NO,,然后Platform Suite(s)为Windows 32-bit Editions(ALL)

技术分享

2) 64位的component 设置64 bit component为yes,,然后Platform Suite(s) 根据自己软件的情况设置为Windows 64-bit Editions for Itanuim 或Windows 64-bit Editions for AMD

 

 

3.设置路径

1)32位安装包当前安装目录设置为PROGRAMFILES^"XXX"

技术分享

2)  64位安装包当前安装目录设置为PROGRAMFILES64^"XXX",

技术分享

如果有涉及system32目录,IS里也提供相应的变量 WINSYSDIR和WINSYSDIR64

 

4制作32位和64位的安装包,还有个比较关键的设置点,就是安装过程出现的默认安装路径的选择,可以这样处理:

1)  将Generation Information 中TARGETDIR目录设置清空;

2)  然后将路径选择的代码修改如下

if(SYSINFO.bIsWow64)then

    TARGETDIR=PROGRAMFILES64^" XXX ";

    nResult = SdAskDestPath( szTitle, szMsg, TARGETDIR, 0 );

        

else

    TARGETDIR=PROGRAMFILES^" XXX ";

    nResult = SdAskDestPath( szTitle, szMsg, TARGETDIR, 0 );

      endif;

这样就一个整合32位和64位为一个安装包就做好了。

 

注意:

1.如果通过写脚本的方式在64位的系统下进行文件的拷贝, 需要在拷贝代码前加入

Disable(WOW64FSREDIRECTION) 重定向到system32 文件夹,解决64系统默认拷贝文件到sysWOW64文件夹。文件拷贝完毕后请Enable(WOW64FSREDIRECTION)恢复设置,避免影响系统的其他程序。

2.还有一个需要注意的,64位的系统下进行文件的拷贝,除了重定向目录外,相应的函数也要写正确,否则也没办法拷贝到想要的目录。比如 32位系统下system32 文件夹对应WINSYSDIR函数,64位系统则对应WINSYSDIR64

3. 如果有涉及要操作64位系统注册表,可以通过REGDB_OPTIONS = REGDB_OPTIONS | REGDB_OPTION_WOW64_64KEY开关注册表,否则默认会写入到HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node键值下。用完记得REGDB_OPTIONS = REGDB_OPTIONS & ~REGDB_OPTION_WOW64_64KEY 恢复设置避免影响系统的其他程序。

 

制作32位和64位整合的安装包

标签:

原文地址:http://www.cnblogs.com/sabrinahuang/p/4212864.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!