zoukankan      html  css  js  c++  java
  • 利用Visual Studio制作安装包

    在某年的一个暑假,很想把已经写好的“锄大地”游戏跟冯Boy分享一下,可是那时候不会做一个自动安装.NET Framework4.0的安装包,很遗憾无法跟她分享我的成果。

      最近上头有任务,让我去为团队的成果打一个包,而且项目运行时必备的SQL Server、.NET Framework都要一键安装,项目用到的数据库和端口都要在安装的时候一同搞好,这回总算是会了。

    安装项目介绍

    新建一个安装包的项目

    建好了项目之后就有这个界面:文件系统编辑器

    还有其他类型的编辑器。

    由左往右分别是:文件系统编辑器,注册表编辑器,文件类型编辑器,用户界面编辑器,自定义操作编辑器,启动条件编辑器。

    到现时为止,只用到三个编辑器

    •   文件系统编辑器:编辑安装到目标计算机后,各个文件放置的情况,就上面那幅图所示,“应用程序文件夹”里塞的就是程序所有东西;“用户的‘程序’菜单”就是开始菜单中的内容,这里一般会有程序的快捷方式、卸载程序;“用户桌面”就是桌面上方的东西了,一般就有程序的快捷方式了,如果特别一点的就像酷狗的弄多一个文件夹出来。
    •   用户界面编辑器:这个用于编辑安装程序时弹出的界面,可以调换各个对话框出现的顺序,如果有需要的话,就可以另外增加一些别的对话框,例如填上数据库的实例名,IP地址,端口号之类的。

    •   自定义操作编辑器:当在安装过程中还要做其他的操作,例如附加数据库,文件复制等等,就需要这个自定义操作了。自定义操作则需要另外加项目,一个类库项目,关键的是类库里面需要一个安装程序类

    安装包制作

    介绍完各个编辑器之后开始制作安装包了

    打开“文件系统编辑器”,右击应用程序文件夹 —》 添加 —》 文件,在弹出的对话框选择要安装到目标计算机里面的文件(包括exe和dll)

    通过类似的方式可以在“用户‘程序’菜单”和“用户桌面”里面添加内容。最简单的就是添加快捷方式

    如果要在安装过程中做一些操作(拷贝某些文件,开端口,附加数据库等等),则要编写安装程序类了。在上面说的那个Installer1类中

    可以重写一些方法根据各个不同是的时候选择适合的方法,这里就OnBeforeInstall方法。

    复制代码
            protected override void OnBeforeInstall(IDictionary savedState)
            {
                //从用户界面获取的参数
                string portId = Context.Parameters["PortId"];
                base.OnBeforeInstall(savedState);
                //自己定义的一个利用命令行开放端口的方法
                OpenPort(portId);
            }
    复制代码

    安装程序类定义好之后,回到“文件系统编辑器”添加一个项目输出

    选择刚才安装程序类所在的项目。

    接着到“自定义操作编辑器”在安装的节点右键—》添加自定义操作,在弹出的对话框选择刚才添加的主输出*****

    上面开放端口需要一个端口号,而这个端口号则是从用户界面传入的。在“用户界面编辑器”中的启动节点右击—》添加对话框,弹出的对话框选择适当类型的对话框。

    这里只选择文本框(A)就足够了。

    编辑这对话框的内容,可以在属性窗口编辑。

    这里有BannerBitmap,BannerText,BodyText和四组Edit开头的属性,相信通过这幅图就知道各个属性的含义了,EidtVisible就是控制那组文本框是否显示

    而这里只需要把Eidt1的显示就可以了,并且各个属性设成这样

    然后回到自定义操作处编辑打开主输出****的属性窗口,给CustomActionData属性附上这样的值

    /PortId="[PORTID]"

    等号前的是安装程序类的Context.Parameters["PortId"];里面的参数名,后面的PORTID是用户界面EditPorert属性的值,这如果有多个参数的话 要用空格隔开,如:

    /Para1="[PARA1]" /Para2="[PARA2]"

    整个安装程序大致完成了,最后要是程序运行的时候要有什么必备的组件,例如(.NET Framework),就要在安装项目右击,打开属性窗口,点击系统必备,选择必备要组件。

      这里放一个小插曲,如果在这里勾选了SQL Server 2005 Express的,在生成的时候报错了,本人尝试在安装程序类中利用代码调用命名一键安装SQL Server,可是失败了,原因是系统只允许一个Instraller运行。最终还是得勾选SQL Server 2005 Express的,至于解决方法,得参照另一篇博文《自定义系统必备

     

    右击安装项目生成,安装包就生成了

      Setup.exe是一键安装组件的安装程序,msi后缀的安装程序是跳过了组件安装的安装程序。到这里安装包的制作算是完成了。要是在那个暑假我懂得这些,就能跟冯Boy分析我编写的小游戏了,遗憾呐!

    本文的思绪有点紊乱,还得请各位多多指教。谢谢!

     
     
    分类: 未知分类
  • 相关阅读:
    28完全背包+扩展欧几里得(包子凑数)
    HDU 3527 SPY
    POJ 3615 Cow Hurdles
    POJ 3620 Avoid The Lakes
    POJ 3036 Honeycomb Walk
    HDU 2352 Verdis Quo
    HDU 2368 Alfredo's Pizza Restaurant
    HDU 2700 Parity
    HDU 3763 CDs
    POJ 3279 Fliptile
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3119051.html
Copyright © 2011-2022 走看看