有时候我们会碰到这样的情况,一个软件分了好几个版本,其实大部分内容是相同的,只是有几个文件有稍许的差别。所以我们希望能够在同一个工程中,通过设置一定的条件,编译出不同的版本
实现工程类:Installscript 2009/2010
实现:
1. 定义符合不同版本要求的feature
比如分国内国外两个版本,就可以建立两个feature ,一个命名为ForOversea,另一个命令为ForDomestic,然后将稍许的差别的文件添加到不同的feature中.注意:最好设置这两个feature的visible属性为”No”,因为这些feature只是对我们来说有区别,客户无需知道
2. 脚本实现安装哪个feature
在function OnFirstUIBefore(),指定一定的条件并通过ComponentSelectItem函数来实现什么情况下安装哪个feature:
#ifdef ForOversea
ComponentSelectItem(MEDIA," ForDomestic",FALSE);
#else
ComponentSelectItem(MEDIA,"ForOversea",FALSE);
#endif
3. 指定编译哪个版本
在build菜单中找到settings选项,选择“Compile/link” tab,在preprocessor中输入要编译的版本,比如需要编译国外版,就输入ForOversea(注意:这里输入的ForOversea,必须与第2步中脚本#def里定义的相同。
4. 最后build菜单中选择 Refresh build一下即可编译出需要的版本
5. 如果是IS6.3的版本, 第2步有稍许的不同,
1) 需要在先定义全局define #define ForDomestic 0 // 0:ForDomestic; 1:ForOversea
2) #if (ForDomestic =0)
ComponentSelectItem(MEDIA," ForOversea ",FALSE);
#elif (ForDomestic =1)
ComponentSelectItem(MEDIA," ForDomestic ",FALSE);
#endif
版权声明:转载请注明原始出处。