1、怎么使得程序窗口左上角和任务栏有图标,如下图所示:

         

其实这个问题不应该放到程序打包这部分讲,只不过对于一些初学者而言,在这提下也许会有很大的帮助(想到自己刚学.net那会了,呵呵)。方法之一的话就是先添加一个图标文件到项目中,然后切换到每个界面设计器,右键窗体的属性,在属性窗口有个Icon选项,下面的也就不用多说了吧~

2、 先新建一个空的解决方法,File->New->Project->Other Project Types->Visual Studio Solution->Blank Solution,这儿取个名称SetupDemo:

如图:

3、在解决方案中添加个项目工程,右键上图中的解决方案,点击 Add->New Project,选中Windows Form Application模板,输入SetupForm,结果如下:

4、给项目添加些基本信息:

在上图中,右键SetupForm后单击Property或者直接双击上图中的Properties,会出现下图

左侧很多选项卡,所以可以更改的东西很多,大家可以视需要而定制,这没必要赘述。大家可以点击上图中的Assembly Information 按钮,添加项目出品公司信息,如下图所示:

5、本来这应该讲添加安装部署项目了,但是对于在Windows7上开发的朋友们,还需要加上额外的一部,那就是关于程序安装后的权限问题。大家知道,从Vista开始Windows操作系统便加入了UAC机制,所以问题就出现了:如果我们制作的程序被安装到了系统盘了会怎样?有心的会发现,当程序进行一些诸如IO操作的时候,这些都会被操作系统要求以管理员权限运行,否则所有的操作会被系统拒绝。

如果直接进入安装部署项目的操作的话,这样打包出来的安装包即便你以管理员权限运行安装了。但是,出现在桌面上的图标快捷键右键时候却没有“以管理员权限运行这一选项”,除非你直接切换到安装目录,右键exe文件以管理员权限启动~

解决方法是,右键SetupForm项目,添加一个应用程序描述文件,如下图:

直接点击添加即可,这时候打开文件会出现以下内容:

想必不用多说了吧,把 level="asInvoker" 按调用者权限 改成 level="requireAdministrator"管理员权限就OK啦。

建议将该文件拖入Properties目录下,如下所示:

6、添加安装部署项目,右键解决方案后Add->New Project->Other Project Types->Setup and Deployment,输入MySetup后确定,结果如下:

7、右键上图中的MySetup->View->File System,确定后如下图

解释下上图中几个文件夹的意义:

Application Folder——所有的项目的Release文件夹或Debug文件夹下的资源文件、可执行程序以及描述性文件等都需要放到这

User‘s Desktop——用户桌面,在这下添加快桌面捷键,安装完了会在用户桌面产生快捷键

User's Programs Menu——用户开始菜单,也是添加快捷键的地方,不过是在用户开始菜单,多个项目打包在一块的话,最好在该文件夹下建个文件夹

好了,一步步来

1)Application Folder

先是右键Application Folder->Add ->Project output,出现以下的窗口:

由于只有一个项目,所以上面的下拉菜单中只有SetupForm一个选项,这儿我们选择Primary output,即可。

当然,如果项目中的文件种类比较多,你也可以右键Application Folder->Add->File,然后浏览到项目的目录,将项目的Release或Debug文件夹里面的东西一股脑儿的添加进来~

2)User's Desktop

在右侧分割的窗口中右键->Create New Shortcut,在出现的窗口中双击Application Folder,选中刚刚添加那个Project Output文件即可。这时候安装到桌面时候快捷键图标还是默认图标,如果定制自己的图标的话,则需要在右键刚刚建立的快捷键,到属性窗口有个Icon属性,单击浏览,如下所示:

        

单击Browse                                                                    Icon选择窗体

双击Application Folder,如果在第 1)步骤中你添加了Icon文件的话,可以看到这些图标并可以选择,没有的话那就回到步骤1)添加呗~

3)User's Programs Menu

步骤同上,不过需要提醒的是多个项目打成一个安装包的时候,这下面最好先建个文件夹然后再添加那几个快捷键~

8、到这一步,便可以右键MySetup后Build下,然后找到MySetup目录下的Release或者Debug文件下,便会有安装包啦~

9、没完呢,要想添加个卸载程序怎么办呢?

方法:在7中的第1)步骤,给Application Folder还得添加个东西,右键Application Folder->Add->File,然后在你的系统盘下的Windows/System32目录下添加 msiexec.exe,该文件是什么想必不用多说了把~添加了后,关键是在开始菜单下添加个删除的快捷键~于是,在7中的第3)步骤中添加的文件夹下,再创建一个快捷键,命名为Uninstall,如下:

右键Uninstall快捷键,打开其属性窗口,有个Arguments属性,如下所示:

输入 /x 安装包的Productcode,这个ProductCode怎么获得呢,方法是左键单击MySetup安装包项目,然后点击属性窗口,会在该窗口找到Product code 属性,将该code复制到/x 后面即可,下图:

这时候卸载功能已经添加进去了~

10、还没完呢,如果想要安装程序在安装时候或者卸载的时候打开浏览器定位到指定的网址怎么办?

这个问题本人只在XP系统下解决了,win7系统下貌似不起作用,囧~期待园友的解决方案

说说在XP下怎么解决的把:

大家右键部署项目MySetup->View->Custom Actions 选项,如下所示:

出现Custom Actions编辑界面:

以上是程序安装部署到卸载的四个阶段,每个阶段都可以添加执行exe、dll或者vbs类型的命令,由此看来至少可以有三种方法实现~下面我便用后两种分别完成这个功能~

1)VBS脚本

新建个脚本,内容如下:

Set openWeb=CreateObject("Wscript.shell")

openWeb.run("www.cnblogs.com/royenhome")

保存为Internet.vbs,然后将该脚本添加到Application Folder,在Custom Actions编辑界面的相应阶段将该脚本添加进去~添加方法,呵呵,不用多说了把~

2)dll方法

在解决方案下新建个类库项目,取名为OpenWebDll,如图:

删除class1.cs,然后给类库添加个Intaller类,如下所示:

该类继承了Installer类,我们打开添加的类文件,在文件中override相应的方法,如希望在卸载时候打开网址,如下所示:

Build下该类库,然后在MySetup的Application Folder文件夹下添加该项目的Project Output,然后切换到Custom Actions编辑界面的Uninstall添加该Output,同时确保Install下也添加该Output文件,否则安装会提示找不到xxx.installstate文件~具体操作见下图:

       

Build下就OK了

11、至此,本文真的完了~

转载于:https://www.cnblogs.com/fcsh820/archive/2010/04/02/1703183.html

(转)详解Vs2008下打包安装程序的一些技巧(含win7下提权限、卸载以及安装时定向到网页)...相关推荐

  1. 数字音频总线A2B开发详解十三(A2B-SigmaStudio配置程序的小技巧-子程序设计)

    作者的话 我们在做A2B的过程中,会涉及到SimgaStudio工程的开发,举个例子,ADAU1452的Master工程,ADI给的配置工程非常繁琐,把整个软件屏幕都占满了,那么我们想要在上面继续做算 ...

  2. [转]大数据环境搭建步骤详解(Hadoop,Hive,Zookeeper,Kafka,Flume,Hbase,Spark等安装与配置)

    大数据环境安装和配置(Hadoop2.7.7,Hive2.3.4,Zookeeper3.4.10,Kafka2.1.0,Flume1.8.0,Hbase2.1.1,Spark2.4.0等) 系统说明 ...

  3. 3000门徒内部训练绝密视频(泄密版)第8课:彻底实战详解使用IDE开发Spark程序

    彻底实战详解使用IDE开发Spark程序 使用IDE开发Spark分析 使用IDE开发Spark实战 使用IDE开发Spark的Local和Cluster 开发两种选择:IDEA.Eclipse 下载 ...

  4. 第10课:底实战详解使用Java开发Spark程序学习笔记

    第10课:底实战详解使用Java开发Spark程序学习笔记 本期内容: 1. 为什么要使用Java? 2. 使用Java开发Spark实战 3. 使用Java开发Spark的Local和Cluster ...

  5. 第8课:彻底实战详解使用IDE开发Spark程序

    第8课:彻底实战详解使用IDE开发Spark程序 1.下载安装windows下的scala-2.10.4. 2.打开eclipse,新建scala project: WordCount 3.修改依赖的 ...

  6. 第8课:彻底实战详解使用IDE开发Spark程序--集群模式运行

    第8课:彻底实战详解使用IDE开发Spark程序--集群模式运行 拷贝WordCount.scala生成WordCountCluster.scala. 1. 将object WordCount改为ob ...

  7. 命令行下打包Qt程序

    命令行下打包Qt程序 上一节我们说了 命令行下编译Qt程序 https://blog.csdn.net/weixin_42837024/article/details/81945656 现在基于上次继 ...

  8. find linux 目录深度_浪里淘沙,详解Linux系统中Find命令的实用技巧

    知了小巷:浪里淘沙,详解Linux系统中Find命令的实用技巧. 啊哈,找到了! 当我们需要在Linux系统上定位某个文件或目录时,find命令通常是必备之选. 它使用起来非常简单,但有许多不同的可选 ...

  9. 计算机照片打印设置方法,详解设置打印机纸张添加7寸照片尺寸在win7电脑中的操作的步骤...

    我们在很多的设计中打印照片的时候很多的小伙伴都是喜欢不停的效果的,那打印纸的时候怎么设置比较特殊的打印的尺寸的呢,对于7寸照片是怎么设置的呢,有小伙伴提问这个问题今天小编就来跟大家分享一下详解设置打印 ...

最新文章

  1. 内向者优势 原版_未来内向的人具有越来越高的竞争力——心理学:学会运用性格优势...
  2. 【luogu P3384 树链剖分】 模板
  3. 这届清华学生太难了!C++作业难到上热搜!
  4. php评星,jQuery+PHP星级评分实现方法
  5. Beam概念学习系列之SDKs
  6. .Net 与 Java 的服务接口相互调用
  7. idea java文件显示j_IDEA 快捷使用指南
  8. 英语总结系列(十五):别样的三月
  9. TP-Link 开始锁定路由器固件禁止安装开源固件
  10. C语言实现井子格游戏
  11. matlab已知xyz拟合标定map,matlab练习题
  12. java 字符流异常处理_IO字符流9jdk7和jdk9中流的异常的处理
  13. 构建postfix邮件服务器(五)extmail和extman的安装,实现web使用和管理邮件系统...
  14. 添加谷歌账户显示与服务器,解决添加google同步帐户出错竟然可以这般简单!
  15. AD09 PCB设计中频繁弹出“undeclared identifier........“
  16. 详解各种光学仪器成像原理
  17. Spark Streaming系列-1、什么是Spark Streaming?
  18. Ubuntu更新显卡驱动与升级cuda版本“采坑“小记
  19. SwiftUI 教程之应用中实现 Core Spotlight搜索(教程含源码)
  20. 触摸精灵之keepScreen

热门文章

  1. 抱歉咯!今天偷个懒!!
  2. 英文期刊催稿信模板_手把手教你写投稿信,另附查尔斯沃思高质量模板
  3. 基于html人事管理报告,基于C++builder的课程设计报告 (人事管理系统)
  4. 电话光端机的电话业务不通问题,该怎么去检查?
  5. 光端机安装调试需注意的几大因素
  6. 【渝粤教育】国家开放大学2018年春季 0703-21T经济学基础 参考试题
  7. 国家开放大学2021春1129土木工程力学(本)题目
  8. 【渝粤题库】陕西师范大学292961 会计学 作业 (高起专)
  9. 【渝粤题库】国家开放大学2021春2223物业管理财税基础题目
  10. linux做定时数据库备份,Linux实现定时备份数据库