打包及自定义操作

时间:2022-01-20 19:23:17

    你在自定义操作界面中四个过程中(安装,提交,回滚,卸载)都可以加上你自己要做的一些事情 --  一般就是主程序的输出。你可以在你要部署安装的主应用程序项目中加入一个安装程序类,在里面重写方法即可:
   public override void Install(IDictionary stateSaver);//全部安装完毕后你自己的操作
   public override void Uninstall(IDictionary savedState); //卸载时你的操作
   ... ...
其他回滚操作,提交操作都可以写上你自己要做的事情。

// 获取程序目录
Assembly asm = Assembly.GetExecutingAssembly();
int index = asm.Location.LastIndexOf("//");
string filePath = asm.Location.Substring(0, index) + "//daily.exe";VS.net的所谓custom action 都是事后进行的,比如:
重载Install(),则安装程序会在执行完Install动作后才会来执行你重载的代码,相当于你重写的代码只是额外添加的动作而不能左右整个程序的安装过程。Uninstall同样如此。。 

但奇怪的是,你若同时重载了Install()、OnBeforeInstall()、OnAfterInstall()方法,则安装程序在执行完封装的Install动作后会先执行你重载的Install()方法,然后才执行BeforeInstall,接着是AfterInstall