InstallShield技术FAQ(1)

前两天Installshield11制作的安装包,需要升级到Installshield14(2008)上,下面是收集的FAQ

1.Installshield14(2008)中,在Win2012上,SYSINFO.nOSMajor,SYSINFO.nOSMinor取得不对。

判断目标OS版本可以利用注册表

NUMBER    nOS,nvResult;
STRING  svOS;

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

RegDBGetKeyValueEx("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion", "CurrentVersion",nOS,svOS,nvResult);

if(svOS = 6.0) then
//Win2008
endif;

if(svOS = 6.2) then
//Win2012
endif;

2.Executesequence中InstallValidate

如果不需要对文件的check,可以无效掉这个action就可以了。(Conditions : FALSE)

InstallValidate之后使用条件REMOVE="ALL"的自定义action都会失效。

我们可以换另外一种等效的条件_IsMaintenance="Remove",但它必须在UserInterface sequence中使用。

 

PS:

·        First-timeinstallation: Not Installed

·        Anymaintenance type: Installed

·        Uninstallation:REMOVE="ALL" (after InstallValidate)


3.installshield2008 安静卸载

STRING  szProgram,szCommandLine;


szProgram =  SystemFolder ^ "msiexec.exe";
 szCommandLine = "/X {Product Code} /quiet";
        
 LaunchAppAndWait(szProgram,szCommandLine, WAIT);

InstallSite Software and Support for Setup Developers


你可能感兴趣的:(InstallShield技术FAQ(1))