下载 VisualStudio Installer 插件
由于从 VS2017 开始 VS 已不再集成 Installer,所以你需要手动进行安装 VS Installer。
可以在 工具 - 扩展和更新 里面的 Visual Studio Marketplace 搜索并安装 Installer。
也可以在 Marketplace 下载安装 Microsoft Visual Studio Installer Projects。
注:Marketplace 里面它详细的更新历史、文档链接)和 Q&A 等重要内容。
制作打包文件
- 右键 解决方案 - 添加 - 新建项目
- 选择项目类型 - Visual Studio Installer - Setup Project
- 此处 Setup 项目的名称就是打包后的安装程序的名称
添加主输出:右键 Appliaction Folder - Add - 项目输出
此处的主输出,就是解决方案中的启动项目
添加快捷方式图标文件:右键 Application Folder - Add - 文件 添加图标文件(推荐大小 64PX)
右键 主输出 - 创建快捷方式
设置快捷方式属性
- 设置快捷方式名称
设置快捷方式的 Icon(第 4 步添加的图标文件)
将刚才创建并配置好的快捷方式拖入 User’s Desktop 文件夹,即可在程序安装时自动生成桌面快捷方式
重复步骤 5 和 6 再创建一个快捷方式,并将其拖到 User’s Programs Menu 文件夹,即可自动在开始目录中添加快捷方式
设置需要的 .NET 版本:右键 - 安装项目 - 属性 - Prerequisites,选择项目所需的 .NET 版本
手动添加其它资源文件
例如我在程序目录下有个 Configs 文件夹,里面有很多配置参数表。
只需在 Application Folder 下创建 Configs 文件夹,再右键添加文件,一次把参数表都选上添加进来即可。
注:项目 Resources.resx 里面的图像图标等资源不必手动添加。
进阶技巧
集成 .NET Framework 离线安装包
参考:vs2017 自带发布工具 ClickOnce发布包遇到的问题
下面以集成 .NET Framework 4.6.1 为例。
依然是 右键 - 安装项目 - 属性 - Prerequisites
勾选 4.6.1, 并选择“从与我的应用程序相同的位置下载系统必备组件”
看一遍官方教程:如果你是集成在线安装包,到这就差不多了
生成一遍安装项目,看报错说明
按照报错说明中的内容去网上搜索并下载这两个离线安装包
- 参考官方教程,ENU.exe 复制到 Packages\DotNetFX461 目录下
- 由于 CHS.exe 是语言包,所以需将它复制到 Packages\DotNetFX461\zh-Hans 目录下
- 再生成一遍安装项目即可
集成本地化资源
如果你的程序支持双语包含本地化资源,在打包时你需要在主输出中手动右键添加 项目输出 中的 本地化资源。
升级式安装
制作打包文件时可以通过设置相关属性实现升级式安装(安装软件的新版本时自动替换掉老版本)。
发布新版本的具体操作:
- DetectNewerInstalledVersion )设为 True,使安装时能自动检查新版本
- RemovePreviousVersions )设为 True,使安装时能检测老版本并将其卸载
- 更新 Version)(版本号),使新的版本号高于老版本号
- 维持 UpgradeCode)(升级码)不变,如果升级码被修改将导致 1,2 两项设置失效
Bug 版本号更新但程序未更新
如果你发现升级式安装后程序并未更新,但控制面板里面的版本号又更新了,那你可能也遇到了 Installer 的一个奇葩 Bug。
解决方法是:每次打包新版本前手动更新 AssemblyInfo.cs 里面的项目和文件版本号。
[assembly: AssemblyVersion("2.3.6.0")]
[assembly: AssemblyFileVersion("2.3.6.0")]
注:如果你的解决方案中包含多个项目,且本次更新中你修改了多个项目中的源码,那你也需要手动更新所有相关项目中的 AssemblyInfo.cs。
自定义默认安装路径
下面演示如何将程序默认安装路径修改到 D 盘下面。
- 打开安装包制作项目的 File System 视图
- 右键 Application Folder,设置其属性
- 此处的 DefaultLocation 就是默认安装路径
- 默认路径为:
[ProgramFilesFolder][Manufacturer]\[ProductName]
- 根据项目的目标平台,ProgramFilesFolder 会自动对应为 C:\Program Files (x86)\ 或 C:\Program Files\
- 如下修改就将默认安装路径修改到了 D 盘