当前位置: 移动技术网 > IT编程>开发语言>c# > Wix 快速开发安装包程序 (二)安装包行为 CustomAction

Wix 快速开发安装包程序 (二)安装包行为 CustomAction

2020年01月10日  | 移动技术网IT编程  | 我要评论

上一小节,主要介绍了构建最小级别的安装包,这个安装包所做的事情很简单,主要是打包好一些文件,然后放到用户机器的某个位置下面。

这个小节,主要是说安装过程的各种行为如何使用wix编写。

 

customaction

1. 使用内建元素 customaction

注意到我们之前给用户安装过一个文件 foobarappl10.exe,这个文件在wix通过file元素指明,注意它的id是foobarexe

那么我想在安装完成之后,运行这个exe,就可以这样写:

如上,通过filekey 找到要执行的文件。

还有一个例子,用notepad打开安装后的一个文件 readme.txt,通过property找到notepad.exe, 然后再传参数readme.txt,这样就可以打开了。

实际效果,安装完成之后:

 

2. 通过 customaction 注入c#代码,并在安装应用程序时执行

上面介绍的方法毕竟使用起来比较受限,wix允许我们写c# code 并在安装时执行

1. 用vs创建工程

2. vs帮我们添加了一个cs文件,注意wix能执行的方法都要加attribute customaction

参数 session 相当于上下文环境,先测一个最简单的方法,session.log 方法,这个是在安装包按安装过程中,向日志文件写东西的接口。

更多的session信息参考微软文档,

3. 编译完成后得到产物 mycsutomaction.ca.dll

4. 添加到我们的安装包工程里

 

5. 添加一个文件,专门定义刚才的customaction, 注意binarykey是为了找到那个dll,dllentry 是你要调用的方法名

 

6. 使用的地方

 

使用命令安装做出来的安装包,并指明生成日志文件到当前目录

;正常安装
msiexec /i  setupproject1.msi

;安装后写日志,myinstaller.log
msiexec /i  setupproject1.msi  /l*v  myinstaller.log

 

观察日志文件,发现customaction 已经被执行了

 

 

3. 调试安装包和 csutomaction 注入的代码

实际开发中注入的c# 不可能没有bug,除非它真的太简单,所以必须得会调试

 

1. 为了测试,加点property在文件里

2. 在c# custom action这边,写一句代码,把vs启动起来

 

3. 实际安装中,会弹出用vs打开源代码工程,选好了就能调试代码。

注意session中可以拿到之前定义的几个property,name age address

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网