安装包制作
1.创建安装项目:在“解决方案”上右键,“添加”——“新建项目”
2.选择“其他项目类型”——“Visual Studio Installer”——“Setup Progect”,可以更改名称,全部选择完毕后,点击确定。
3.添加应用程序
里面最左侧的框框有三个文件夹
①"应用程序文件夹"即"Application Folder"表示要安装的应用程序需要添加的文件;
②"用户的'程序'菜单"即"User's Programs Menu"表示:应用程序安装完,用户的"开始菜单"中的显示的内容,一般在这个文件夹中,需要再创建一个文件用来存放:应用程序.exe和卸载程序.exe;
③"用户桌面"即"User's Desktop"表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。
4.在“Application Folder”上右键“Add”——“文件”,添加主文件
5.添加的文件一般是已经编译生成过的应用程序项目的debug目录下的exe文件(即位于../bin/Debug文件夹下的主程序exe文件)
6.添加后,一般它会自动把exe程序所需的依赖项也加进来,如各种dll文件,在右侧的"Detected Dependencies"里面可以看到它自动导入了哪些依赖项,方便你检查是否有遗漏
接下来,可能还剩一些文件夹或者配置文件XML等没有自动加进来,这个时候就需要自己手动添加
方式也是一样,右键“Application Folder”上右键“Add”——“文件”,添加文件,这里就不再赘述
PS:这里依赖文件如果有文件夹,在这里也是需要添加相同的文件夹的
7.创建快捷方式:右键主程序exe文件,选择"创建快捷方式到……"
8.然后,中侧框框里会出现一个快捷方式项,将它剪切,粘贴到"用户桌面"和“开始菜单”文件夹下(需要制作两次快捷方式),先不要改快捷方式的名字
9.先改快捷方式的图标、名称、描述等其他属性,可以在属性面板中设置,如下:(其中Icon选择Browse可以更改快捷方式的图标,但是图标必须是ico格式。同时也是在这个时候才可以更改快捷方式的名字)
10.添加卸载程序
既然有安装就有卸载,卸载程序其实是一个Windows操作系统自带的程序(C:Windows\System32\Msiexec.exe),只不过是通过给它传特殊的参数命令,来让它执行卸载
添加和设置卸载程序的操作如下:
首先,将卸载程序放在"应用程序文件夹"目录下,右键"应用程序文件夹",添加——文件,在系统盘下找到这个路径文件——C:Windows\System32\Msiexec.exe添加进去
11.由于Msiexec.exe这个名字不够直观,所以一般接下来我们会对它重命名,一般改为"卸载.exe"或"UnInstall.exe",然后给它创建快捷方式并将快捷方式放到"用户程序菜单"目录下(另外当最后安装包制作完毕后,Application Folder下的msiexec.exe会显示报错,但是这个报错无视就可以,因为msiexec.exe是Windows程序,被Windows保护)
12.接下来是很关键的一步,设置卸载参数,告诉卸载程序该卸载哪个
首先,找到安装项目的ProductCode,在安装项目的属性面板中可以看到,如下
13.复制此ProductCode ,粘贴到"卸载.exe"快捷方式的Arguments属性,前面加/x空格,如下(Arguments="/x {81575537-5736-457F-9DBE-857C1F67BE70}"记得/x后面一定要有个空格)
14.选择默认安装目录及其他设置
如果还想对安装程序进行其他设置,比如,友化安装欢迎界面,自定制安装步骤,修改注册表,设置启动条件(比如要求必须先安装指定的.net FrameWork版本才可以启动)等,可以右键安装项目,在View中可以进行选择设置,如下
左键点击一下“Application Folder”,在属性列表中DefaultLocation可以对默认安装路径进行更改。如果不更改,系统默认安装路径是C:\Program Files\Microsoft\安装项目名称。所以[ProgramFilesFolder][Manufacturer]\[ProductName]中,[ProgramFilesFolder]对应Program Files,[Manufacturer]\对应Microsoft,[ProductName]对应安装项目名称。
15.设置安装环境
一般我们开发的程序都有一个目标框架,也就是所依赖的.net Framework版本环境,如.net Framework 2.0/3.5/4.0/4.5等
要想我们的程序能在电脑上正常运行,首先就得保证电脑上装有指定的.net Framework版本框架。有两种方式实现设置安装环境,一种是需要安装包在有网的环境下进行安装(这种方式是从网上的运行商上下载运行环境),另外一种是可以在离线状态下安装安装包(这种方式是提前将运行环境从网上下载好,并和软件一起封装)
有网安装安装包方式下可以在安装包的属性中设置,启动安装前检查操作系统中是否安装了指定版本的框架或其他依赖,设置方法如下:
右键安装包项目,点开"属性"
然后点击"Prerequisites……"
选择你程序需要的.net Framework版本以及其他依赖项
选择"从组件供应商的网站上下载系统必备组件",这样一来,即使电脑上没有安装需要的.net Framework也不要紧,只要设置了这项,安装程序会自动从微软的官网上下载对应的组件并安装,是不是很方便
离线安装安装包:
从官网上下载所需要的运行环境安装包,将安装包放到软件Debug文件夹下,在解决方案上右击-〉添加-〉现有项目-〉运行环境,这样就会把这个运行环境添加到该解决方案中来,。
然后在安装项目setup上右击-〉Add-〉项目输出-〉主输出,在项目下拉框中选择刚添加的项目,选择这样就会把这个要打包的项目的基本文件添加到左侧的应用程序文件夹中,名字为主输出来自**(活动)。
这样最后重新生成安装项目时就可以实现离线安装
16.生成打包安装文件
右键安装项目,选择重新生成
然后打开解决方案文件夹下的Debug或Release文件夹,就可以看到生成的安装文件(如下是添加运行环境的第一种方案,即有网情况下的安装包生成情况)
生成的setup.exe与setup.msi的区别
setup.exe里边包含了对安装程序的一些条件的检测,比如需要.net的版本是否安装等,当条件具备后,setup.exe接着调用setup.msi,而setup.msi则可以直接运行,如果你确定条件都具备的情况下,可以选择.msi。
另外一种是离线环境也就是添加运行环境的第二种方案,这种方案只有msi,因为这个是将运行环境添加到项目中区,只要没有安装运行环境就可以进行安装。