1、在这个安装包制作的过程中,所用到的一些图片或者文件,如:快捷键图片,安装步骤中每个图形界面的背景图片等都要事先在[应用程序文件夹]中事先添加好这些图片,即在安装项目中添加这些图片,文件好像是解决方案下debug下的所有文件都拷贝,如exe、config、rpt还有图片等

  2、安装包中的那个Install里面的方法的执行时间是在:所以的文件都安装好了后再执行其中的号码。如客户端安装是在配置文件已经装好了后,但是其中的配置节还没有信息,但是在代码中赋值之后就有了,还有服务器也一样,如数据库也一样,首先是拷贝到客户端电脑上,然后再执行install中的代码,。获取硬盘上的数据库文件,然后再在数据库中创建,并且引用到这个数据库文件

  第一、给安装项目添加必要的文件,貌似是应用程序debug文件夹下的所有文件,还有是安装系统要用的图片文件

  第二、添加系统必备:安装项目右键->属性->选择系统必备,必选上[数据访问组件]、[.net 2.0]、[windows installer 3.1]。如果应用程序中有rpt的报表就要加上报表引擎, 其中【指定系统必备组件的安装位置】要选择第二个,【从与我的应用程序相同的位置下载系统必备组件】

  第三、添加卸载程序,打开系统目录C:\WINDOWS\system32找到文件msiexec.exe,复制到刚创建的安装项目文件系统视图的应用程序文件夹中。

  第四、创建【用户的'程序'菜单(包括安装和卸载)】
      首先创建一个文件夹,然后在文件夹里创建下面两个,因为这个文件夹就是在开始菜单->程序->该文件夹->安装和卸载
      1、创建卸载快捷键(先选择程序,然后配属性):选择【用户的'程序'菜单】->在中间空白地方右键【创建快捷键】->选择msiexec.exe->右键快捷键选择属性->修改Name和ICON->配置Arguments属性。 配置Arguments属性的方法是:单击安装项目,是左键单击,然后找到ProductCode,复制下来,然后Arguments=/x ProductCode(这里注意有个空格)。
      2、创建安装快捷键(也是先选择程序,然后配属性):选择【用户的'程序'菜单】->在中间空白地方右键【创建快捷键】->选择[应用程序的exe文件]->右键快捷键选择属性->修改Name和ICON,且安装不需要 配Arguments属性
      3、在【用户桌面】中重复第2步的操作

  第五、添加用户操作界面
      右键安装项目->视图->用户界面:安装的过程无非就是:启动->进度->结束
      给启动添加一个【文本框A】,并且将它上移到安装文件夹的上面(安装程序运行的时候就是按着上面的顺序运行的)->右键这个【文本框A】,填写其中的值

  第六、添加自定义操作
      为安装解决方案添加一个类库项目,删除Class1.cs。为类库项目添加一个【安装程序类】->Installer1

  第七、完成将我们自定义的安装类接入到安装过程:  
      1、将我们新建的类库作为主输出添加到安装项目中,选择【应用程序文件夹】,在中间空白部分右键选择【添加项目输出】将设置新建的类库作为主输出
      2、打开安装项目的“自定义操作视图”然后在相应(安装、卸载和回滚等)的节点上“右键”添加自定义操作《选择主输出》。右键选择【CustomActionData】
         /PassWord=[PASSWORD] /UserName=[USERNAME] /Server=[SERVER] /TargetDir="[TARGETDIR]\"
         (注:/targetdir="[TARGETDIR]\"传递安装目录的路径、[PASSWORD]等这些是我们在用户界面上设置的文本框的属性)

  第八、再次完善新建的类库,给其中添加方法
      1、重写安装函数public override void Install(System.Collections.IDictionary stateSaver)
      2、重写卸载函数public override void Uninstall(IDictionary savedState)
      3、重写安装完成后函数 protected override void OnAfterInstall(IDictionary savedState)

  附加

  如果我们想在程序卸载的时候保留某些文件则需要配置这些文件的属性如下即可:即:Permanent为true。在安装的的过程中,在应用程序(不是安装解决方案)有些图片文件或者rpt文件也要放在安装后的文件夹中那么就这样设置将应用程序中的这些文件的一个属性【复制到输出目录】属性为:
     ”如果较新则复制”或者“始终复制”,同时在安装项目中添加winfrom项目的“内容文件输出”则在安装包生成过程中自动复制文件到安装包中。

附加2、卸载方法二:(推荐)
1.先生成安装包,记下ProductCode(选择解决方案资源管理器根目录如setup1,再查看属性
标签,不是右键中的属性),下面要用到
2.用VS.net建立一个新的控制台程序uninst.exe文件

'power by: landlordh
'for 2000,xp,2003
Module uninstall
Sub Main()
Dim myProcess As Process = New Process
If System.Environment.OSVersion.ToString.IndexOf("NT 5") Then
myProcess.Start("msiexec", "/X{2B65D4A9-C146-4808-AB4B-321FB077955
9}") '改为自己的ProductCode
End If
myProcess.Close()
End Sub
End Module

3.将控制台程序BIN目录的exe文件加入到打包程序文件中,在程序组创建uninst.exe的快捷
方式

附加3、可以再安装类库项目中再建立一个winform窗体程序,然后在安装类中调用,因为我们在安装项目中添加了一个文本框A其实目的就是更改config文件,那么这里再建立一个winform项目的话也可以实现同样的效果,而且还可以进行更好看的界面

安装包的版本升级,每次升级一定要设置Vesion这个属性和ProductCode这个属性,同时也要设置卸载图标的那个属性,否则当再次安装的时候会提示你到控制面板中删除,然后每次升级的时候版本号要比上个版本号要高,否则的话会提示你不能安装,这种情况只能手动卸载掉电脑上的应用程序然后再进行安装

<感谢斌斌资料的总结>

一起谈.NET技术,.NET 打包入门相关推荐

  1. 浅谈Hybrid技术的设计与实现【转】

    https://www.cnblogs.com/yexiaochai/p/4921635.html 前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术 ...

  2. 浅谈Hybrid技术的设计与实现第二弹

    前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹--落地篇 接上文:浅谈Hybrid技术的设计与实现(阅读本文前,建议阅读这个先) ...

  3. 浅谈Hybrid技术——Big-man

    浅谈Hybrid技术--Big-man 前言: 现在的移动网络以及移动应用可谓是市场强大到无可比拟,骑着自行车在城市的街头上走一走,早已经没有了往日的路上的人们抬头仰望星空的感觉,更多的是成为了一个& ...

  4. Java系列技术之JavaWeb入门-钟洪发-专题视频课程

    Java系列技术之JavaWeb入门-1193人已学习 课程介绍         JavaWeb里的基础核心技术 课程收益     把JavaWeb里的核心技术讲清楚! 讲师介绍     钟洪发更多讲 ...

  5. 黑客技术零基础入门怎么学(黑客初级入门)

    本篇文章给大家谈谈黑客技术零基础入门怎么学,以及黑客初级入门对应的知识点,希望对各位有所帮助. 本文目录一览: 1.黑客零基础入门 2.怎样自学黑客技术? 3.学习黑客需要先学习什么基础?(零基础) ...

  6. (转)浅谈Hybrid技术的设计与实现

    转载地址:https://www.cnblogs.com/yexiaochai/p/4921635.html 前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hyb ...

  7. 浅谈虚拟化技术下的云安全如何处置

    浅谈虚拟化技术下的云安全如何处置 近年来,云计算是目前非常热门的一个研究领域,其实它并不是一种全新的技术,而是许多技术的融合体,包括分布式计算.动态和拓展等各种各样的技术算法,而虚拟化技术是云计算里最 ...

  8. 技术创业需胆识 谈IT技术人员的创业 (http://www.cnblogs.com/dudu/archive/2007/05/27/761740.html)...

    技术创业需胆识 谈IT技术人员的创业 作者:李立辉 我自己介绍一下:本人96年西点毕业,学的是无线通信,柳传志是我的校友,后来分配到北京巨龙做交换机,98年去了深圳中兴,当时看到中兴日益强大,和华为的 ...

  9. 浅谈.NET技术公司的实习生培养

    浅谈.NET技术公司的实习生培养 背景 近几年.NET开发者市场的越发不景气,一毕业就选择.NET技术的开发者更是少之又少.一方面是公司效益的日益提高,一方面却是招聘优秀人才的速度总是赶不上公司发展的 ...

  10. 以计算机谈人文科学,阅读下面一段文字,完成问题   自20世纪80年代以来,世界都在谈“软科学技术”,何谓软科学?经常听人说:“脑子不够使。”这其实就是对软科学的需求。于是,从古至今,...

    阅读下面一段文字,完成问题 自20世纪80年代以来,世界都在谈"软科学技术",何谓软科学?经常听人说:"脑子不够使."这其实就是对软科学的需求.于是,从古至今, ...

最新文章

  1. 费马大定理:三百年数学圣杯的角逐
  2. Tomcat中配置MySQL数据库连接池
  3. 决策树c语言程序代码,R C5.0 决策树c50代码,名为 exit 1_r_开发99编程知识库
  4. vs2012常用快捷键总结
  5. 大专经过计算机统考,成人大专计算机统考选择题汇总
  6. 高效 Java Web 开发框架 JessMA v3.2.1 正式发布
  7. Swift中文教程(十五) 析构
  8. 这道 Go 题目外网超过 80% 的人都答错了,你来试试...
  9. 元宵节正月十五素材图片,可以做壁纸高清!
  10. 对象测试_心理测试:你会选择跟对象去吃什么夜宵?测你治愈失恋的方法是什么...
  11. linux命令iconv_Linux常用命令--iconv
  12. 台式电脑桌面没有计算机图标,电脑桌面图标全部消失怎么恢复 电脑桌面图标设置随意放置的方法...
  13. 计算机excel猪肉价格分析,猪肉价格的统计模型.doc
  14. linux 域名解析 命令,Linux动态域名解析命令脚本
  15. linux 搜狗不能打中文,linux下搜狗输入法不能输入中文的解决方案
  16. Unable to process Jar entry [org/springframework/boot/autoconfigure/quartz/QuartzAutoConfiguration
  17. Jenkins 如何与 Kubernetes 集群的 Tekton Pipeline 交互?
  18. linux aeon gcc,在rosettaCM中,一些操作所需要的linux命令
  19. Qt解决中文显示乱码问题
  20. 实现自己的Tomcat、Servlet、多线程(线程池)处理请求

热门文章

  1. 用Understand阅读 VS2010项目源码
  2. Linux下通过进程名查询占用的端口
  3. GEF常见问题8:导出到图片
  4. 利用content为伊特元素追加三个小点
  5. MySQL数据表基本操作
  6. CSS那些事笔记(一入门)
  7. 使用es6实现iview的选项卡切换
  8. win7 32 安装mongoDB遇到的问题
  9. 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡
  10. [HNOI2008]遥远的行星