下载插件
由于最新的 VS2017 已不再集成 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")]