需求:
通过IS2009中XML Files Change功能,实现改变web.config文件中的一个Element“add[@key="DefaultLanguage" and @value="en"]” value值。该value值可以根据安装时选择的语言进行自动改变。比如选择中文,value值自动填写为“zh-cn”;选择英文,value值自动填写为“en”。
思路:
通过安装开始选择的语言,把值赋给一个变量。然后引用该变量
环境:IS2009 installscript类型
具体步骤:
1. 导入XML文件。在Installation Design视图中选择XML File Changes,右键XML File。选择Import,可以启动Import XML wizard。Next之后,选择需要导入的XML文件(可以在下拉框中选择类型)。Next之后,Select ALL。如果选择部分,安装生成的文件也只有部分内容。Import 导入文件。
这里导入web.config文件中add[@key="DefaultLanguage" and @value="en"]为例
2.配置XML修改。在Web,config节点上,选择General视图,勾选XML Files属于哪个features
3. 找到add[@key="DefaultLanguage" and @value="en"] 子节点,将原来Attribute :value为常量en 值替换为变量<LANGUAGE_USER_SELECT>,如下图:
4. 在installscript中定义一个相应的字符串变量LanguageKey;,用于获取用户选择安装界面语言的值,具体脚本如下:
if(SELECTED_LANGUAGE = ISLANG_CHINESE_SIMPLIFIED)then
LanguageKey="zh-cn";
else
LanguageKey="en";
endif;
5.将变量LanguageKey得到的值赋给<LANGUAGE_USER_SELECT>,这样就达到了<LANGUAGE_USER_SELECT>引用LanguageKey,赋值给value的目的。具体脚本如下:
TextSubSetValue ("<LANGUAGE_USER_SELECT>",LanguageKey, TRUE );
注:MSI类型工程:可以用函数MsiSetProperty
6.最后将整个工程重新build一下
最后特别感谢pisces在实现这个功能中提供的耐心帮助。