Winform程序打包(用户自定义操作)

这一个星期都在捣鼓这东西,找了很多资料,发现介绍用户自定义操作这方面的文章很少,所以将这几天的使用心得写一下,在这里做个备忘吧,比较粗浅(可能还有错),见谅~

环境:VS2010

打包工具:自带Visual Studio Installer


1、在需要打包程序项目的解决方案中,新建Visual Studio Installer项目

2、比较懒,常规的打包就不赘述了,跳过

3、自定义安装操作

  1)视图-用户界面

    ①在弹出的界面中可以添加用户自定义的界面,但是可供选择的界面很有限。 

    ②新建了一个文本框(A)对话框,下面是它的属性

    

    ③实际效果(注:Property为变量名,以此将用户输入提交至自定义安装类程序)

    

    ④创建安装类库(解决方案-新建项目-windows-类库)

    ⑤删除项目自动生成的cs,添加新项-常规-安装程序类,初始如下图

    

    ⑥重写Install方法

        public override void Install(System.Collections.IDictionary stateSaver)
        {
            //通过下面的代码即可接收由安装程序传来的变量值,如果原值中包含“\”,
            //那么传进来的值会为“\\”,因此还需要进行处理
            //string server =    this.Context.Parameters["server"];
            //string uid = this.Context.Parameters["user"];
            //string pwd = this.Context.Parameters["pwd"];

            //这个变量是程序的安装路径
            string path = this.Context.Parameters["targetdir"]);
 
            base.Install(stateSaver);
            //调用自己的安装方法,cmd命令,服务操作,文件操作……
            DoSomething();
        }

    ⑦重新回到Visual Studio Installer项目,右击-视图-自定义操作,在“安装”文件夹上右击-添加自定义操作,选择生成类库dll所存放的路径——选择“添加输出”——选择刚才的类库项目——选择“主输出”——OK——打开该项属性,对CustomActionData进行编辑,如此便可实现自定义页面与安装程序类之间的变量传递。此处定义的是传递安装目录,还可以加入前面定义的那几个变量,代码如下:

/server=[SERVER] /user=[USER] /pwd=[PWD] 

    

    ⑧至此,就基本完成了自定义安装功能了。

4、自定义卸载操作

    基本方法与上同,只不过不知道卸载界面如果自定义...因此忽略①②③

    ④同

    ⑤同

    ⑥重写Uninstall方法

        public override void Uninstall(System.Collections.IDictionary stateSaver)
        {
            base.Uninstall(stateSaver);
            DoSomething();
        }

    ⑦前面基本相同,不同的是将自定义操作加到“卸载”文件夹下

    

    ⑧至此,就基本完成了自定义卸载功能了。

5、更多的自定义操作

查了一下Installer,还可以重写以下方法

2.0

4.0

更多信息:http://msdn.microsoft.com/zh-cn/library/system.configuration.install.installer.onbeforeinstall(v=vs.100).aspx


 

 

 

posted on 2012-03-28 00:15  绝忘  阅读(1717)  评论(3编辑  收藏  举报

导航