转载:http://blog.csdn.net/mengzhishen/article/details/8953901
这是一个Basic MSI基础知识。
A. 首先在Installation Designer/Behavior and Logic/InstallScript视图中,选中Files点击鼠标右键选择“New Script File”,默认会生成一个setup.rul的文件,并有一个MyFunction的函数声明和。
B. 之后我们在MyFunction函数内添加一行代码:MessageBox("MyFunction", INFORMATION);
当然,你也可以修改函数名,用更有实际意义字符串代替。
C. 在Installation Designer/Behavior and Logic/Custom Actions and Sequences视图中,选中顶端的Custom Actions点击鼠标右键选择“Custom Action Wizard”(这里的Custom Action我们经常也简称为CA),下面按着向导逐步说明。
- 第一个界面是Custom Action Wizard欢迎界面。
- 在第二个Basic Information界面中,选择CA的Name,而Comment可忽略。
- 在第三个Action Type界面中,在Type的下拉菜单中选择Run InstallScript Code。(这里你会发现你可以通过CA调用托管代码,其他可执行程序,以及JScript,VBScript等)
- 在第四个Action Parameters界面中,在Source的下拉菜单选择的MyFunction。(如果脚本Setup.rul中你有多个函数声明,你会发现都会显示到下拉菜单中)
- 之后的界面都按照默认设置,直到点击Finish结束。
D. 在同一树状结构中,Sequences/Installation/Execute,选中Execute点击鼠标右键选择Insert,你会看到在C中你添加的CA,选中你的CA,然后设置Condition。(注意如果是想在安装时执行:Not Installed;如果是卸载执行:Installed)
E. 有关我们的CA在Sequence中的位置, 可根据情况调整位置。
CA可以在Sequence中被调用,也可以在各个Dialog中被调用执行。
第一步:
第二步:我这个脚本是删除指定目录,所以把自动生成的MyFunction --- > DeleteFiles,在begin 和end之间写上
DeleteDir (AppDataFolder^"QDocument",ALLCONTENTS);
第三步:新建自定义事件
第四步:重命名为CA
第五步:选择自定义的函数
第六步:在同一树状结构中,Sequences/Installation/Execute,选中Execute点击鼠标右键选择Insert,你会看到在C中你添加的CA,选中你的CA,然后设置Condition。(注意如果是想在安装时执行:Not Installed;如果是卸载执行:Installed)