zoukankan      html  css  js  c++  java
  • C#创建安装、卸载部署程序

    分享3:

             需求:对已经开发的应用程序进行安装封装操作,即创建安装、卸载部署程序;

             分析:程序的开发是为了在不同的人在不同的机器上使用,为了使不同机器使用该软件就需要见程序安装包,并且保证安装包中必须包含此软件运行所需的运行环境;

             具体操作:

                       1.在VS2010中新建项目,选择:其他项目类型->安装与部署->安装向导,然后确定;

                       2.界面默认出现文件系统,分左右两侧;在右侧中点击应用程序文件夹后,右键选择添加文件,将需要打包的执行文件以及相关的组件类库等添加进行;

                       3.右击左边的“应用程序文件夹”打开属性对话框,将属性中的“defaultlocation”的路径中的“[manufacture]”去掉(不然安装程序默认目录就是c:programm file你的用户名安装解决方案名称)

                       4.对执行程序增加快捷方式,选中执行程序,右键选择生成快捷方式,可以进行重命名,并将其剪切到左侧的“用户的“程序”菜单”或用户桌面(这样在安装完成后,快捷方式就会在菜单或桌面出现)

                       5.(重要环节)选择项目名称右键,选择属性;在属性页中,选择“系统必备”,将勾选“创建用于安装系统必备组件的安装程序”;在复选框中选择你必备组件;勾选“从与我的应用程序相同的位置下载系统必备组件”(重要一点:勾选”从与我的应用程序相同的位置下载系统必备组件(D)”,其实意思就是说你勾选后,生成安装项目时,在你安装项目的路径下,会有你在系统必备组件列表中勾选的组件.(系统自动完成,这一点还不错,不需要你自己去下载组件))

                       到此,基本完成制作,点击“生成->生成解决方案”,即可在Debug中找到setup.exe或者“项目名称.msi”

                       6.关于“创建卸载功能”,有两种方式如下:

    方法一:

    A.在添加应用程序时,需要添加一个msiexec.exe(可以重命名为Uninstall.exe),同执行程序一样(这个文件在c:windowsystem32文件夹下);

             B.(重要环节)选中msiexec.exe,需要给该执行程序设置Aguement属性值输入“/x {ProductCode}”(/x与{ProductCode}间有空格),ProductCode值在项目属性中可以找到(即为该安装程序的注册表号)

             这个卸载程序有一个缺点:当制作的安装包电脑系统如果是64位的话,那么如果安装程序完成后,在32位电脑上这个卸载功能的话,就行不通(因为msiexec.exe是64位的)。为解决这个问题,唯有自己创建一个应用程序,直接调用系统中的msiexec.exe。

    方法二:

             新建一个控制台程序,在Main方法中添加如下代码:string sysroot = System.Environment.SystemDirectory;System.Diagnostics.Process.Start(sysroot+“\msiexec.exe“,“/x {ProductCode(此值在安装程序项目属性中取得) } /qr”);

    点击生成,在bin文件夹中得到.exe文件,将其加入到安装程序项目中的“应用程序中去”(后面操作一样了)。这样就可以直接调用电脑系统中的msiexec.exe程序了。

    至此,基本完成安装程序,至于其他设置,可以在属性中设置相关的参数,也可以在视图中自定义安装界面等等。

  • 相关阅读:
    hdoj 1029
    喵哈哈村的魔法考试 Round #5 (Div.2) B
    喵哈哈村的魔法考试 Round #6 (Div.3) E
    喵哈哈村的魔法考试 Round #6 (Div.3) BC总结
    喵哈哈村的魔法考试 Round #7 (Div.2) E
    喵哈哈村的魔法考试 Round #7 (Div.2) C
    喵哈哈村的魔法考试 Round #7 (Div.2) B
    喵哈哈村的魔法考试 Round #7 (Div.2)
    Codeforces Round #402 (Div. 2) --- C. Dishonest Sellers
    Codeforces Round #402 (Div. 2)---B. Weird Rounding
  • 原文地址:https://www.cnblogs.com/ysq0908/p/9382991.html
Copyright © 2011-2022 走看看