VS2010生成C#WinForm程序的安装包(简单类型)

本文主要参考:
C# winform程序怎么打包成安装项目(VS2010图解)
WinForm VS2010发布、打包安装程序(超全超详细)
补充了部分细节和差异,部分图片来自参考博客及百度。

本文以简单的WinForm客户端程序为例,打包Debug目录,不涉及注册表、数据库等复杂操作,仅作入门参考。
本文打包的安装程序=自动拷贝Debug目录下内容到安装目录+自动创建桌面快捷方式+自动创建开始菜单启动项+提供自卸载功能+自动安装所需.net框架

复杂项目(带数据库)请参考:
C# winform程序怎么打包成安装项目(图解)

第一步 创建安装项目

打开要打包的项目,右击“解决方案XXX”->添加“新建项目”-》“其他项目类型”-》“安装和部署”-》“安装项目”(命名Setup)
VS2010生成C#WinForm程序的安装包(简单类型)_第1张图片
应用程序文件夹:里面放置的是程序安装目录里面的内容,一般把Debug目录里面的内容添加进去(有特殊需求也可选择Release目录下的内容)。只能添加文件,文件夹需要先创建文件夹再添加文件夹里面的文件,未找到简单的解决办法

用户的“程序”菜单:放置到用户开始菜单里面的内容,一般创建一个以项目名称命名的文件夹,里面放置应用程序文件夹中程序启动exe的快捷方式和msiexec.exe的快捷方式(不新建文件夹,启动程序和卸载程序会很零散)

用户桌面:存放桌面快捷方式

第二步 修改项目属性

右击解决方案中的setup,选择“属性”-》点击“系统必备”-》
VS2010生成C#WinForm程序的安装包(简单类型)_第2张图片
单选按钮中,选择“从与我的应用程序相同的位置下载系统必备组件”-》确定
(注:一般不需要勾选组件,系统会自动检测)
VS2010生成C#WinForm程序的安装包(简单类型)_第3张图片
点击,左边的“应用程序文件夹”-》从右侧属性列表中,修改属性DefaultLocation“[ProgramFilesFolder][Manufacturer][ProductName]”为:[ProgramFilesFolder][ProductName],否则安装路径不允许用户选择并且会附带“公司名称”

点击解决方案里面生成的”Setup“,将属性中的ProtectName改为”(你的项目名字)“(这个名字会影响程序安装文件夹的名称

其中Author 为作者;Manufacturer为公司名称;ProductName为应用程序的名字;(这样在“控制面板”程序中会显示公司的名称)
**把InstallAllUsers 设置为True **,在安装时会默认为“任何人”,否则默认为“只有我”

第三步 添加项目文件(非常重要)

右击”应用程序文件夹“,点击”添加“,点击”文件“或(有文件夹)”文件夹”。将你的Debug(一般选Debug目录)目录下面的文件全部(软件需要的文件夹、dll等)添加进来,有文件夹的需要在应用程序文件夹目录下新建子文件夹,同时文件夹里有文件的也需要添加进去。
程序可执行文件创建两个快捷方式分别放到“用户桌面”和“用户的程序菜单”,改快捷方式的名称和图标。

第四步 创建卸载程序

右击”应用程序文件夹“,点击”添加“,选择”文件“,然后将"C:\Windows\System32" 下面的”msiexec.exe“(这个msiexec.exe文件最好选择Win7系统下的,这样可以兼容Win10系统)文件给添加进来,如果找不到,你可以直接搜。

创建快捷方式并拖拽到“用户的程序菜单”和“用户桌面”,这样安装完成后,就会在桌面和用户的程序菜单创建相应的图标。

添加msiexec.exe的快捷方式到“用户的程序菜单”,命名为“卸载”
命名了快捷方式之后,将Setup属性(点击解决方案里面的setup弹出属性)ProductCode拷贝到Uninstall属性的Arguments里面:

同时在前头加上 ”/X “,注意:x后面有一个空格。
VS2010生成C#WinForm程序的安装包(简单类型)_第4张图片
VS2010生成C#WinForm程序的安装包(简单类型)_第5张图片

第五步 生成setup.exe

右击setup项目名称,选择“生成”,然后到,生成的目录下拷贝出setup.exe即可安装。
用vs为winform程序打包就已经完成了,不过此时会在安装程序的Debug文件夹生成2个文件夹、1个.exe文件和1个.msi文件,而.exe安装时,又依赖于.msi文件,另外两个文件夹是对应的 .NET Framework 组件。
这个时候给客户安装时拷贝过去的内容较多,也容易安装出错,如果把这些安装内容都打在一起,形成一个.exe 文件,就比较方便了,此时,可以用winrar的自解压格式压缩文件来实现,实现过程:

第六步 自解压打包

将要打在一起的文件及文件夹全部选中,右键 →“添加到压缩文件”,在打开的压缩面板的“常规”选项卡中勾选“创建自解压格式压缩文件”,此时会发现默认的压缩文件名编程了 .exe 后缀名了;压缩方式最好选择“存储”,这样打包后的程序会很快解压缩并运行。如图:
VS2010生成C#WinForm程序的安装包(简单类型)_第6张图片
设置运行文件:再切换到“高级”选项卡,点击“自解压选项”,“常规”里设置程序解压后运行的文件(这个很重要)如图:
VS2010生成C#WinForm程序的安装包(简单类型)_第7张图片
设置安装程序文件的图标:
VS2010生成C#WinForm程序的安装包(简单类型)_第8张图片
切换到“模式”下,勾选“解包到临时文件夹”和“隐藏全部”,再切换到“更新”下,勾选“覆盖所有文件”,一路点击“确定”,大功告成!!

完成了!

“项目名.exe” 就是最中生成的打包文件,直接点击运行就行了!!

待解决问题:

添加Debug目录下的文件夹时,只能先创建文件夹再添加文件;
每次打开安装项目,错误视图里提示找不到文件错误,但不影响生成;
生成安装程序后,应用程序文件夹里部分文件会标红,不影响生成,其它影响未知;
Debug目录更新后,安装项目里的文件是否也更新,未实验(按我的理解,应该会更新);
没有添加项目主输出,直接用Debug里面生成好的exe,可以正常安装,影响未知。

你可能感兴趣的:(C#基础)