图解使用VS的安装项目打包程序

简介:

背景

这段时间一直在做客户端程序的打包程序,遇到各种坑。因为以前没有任何这方面的经验,历经各种折腾,费尽九牛二虎之力总算是完成了。

虽然没有太多技术含量,但是因为挺繁琐的,所以还是在此记录一下。

由于篇幅原因,先介绍第一阶段:直接使用VS自带的安装项目打包程序。

后面会陆续介绍:自定义安装界面(不适用windows默认风格),使用NSIS脚本制作打包程序。

 

1.   建立安装项目工程

1.1. 创建工程

首先在 VS中打开你将要打包的项目。我的案例中,我的工程名叫System

右击解决方案 -> 添加 -> 新建项目,弹出下图的对话框。

我们不妨命名新的安装项目工程名为SetupSystem

 

1.2. 设置安装项目属性

选中安装项目工程,在它的属性栏中设置一些参数。

Author——开发者

Manufacturer——软件生产厂商

这两个默认都是署名为微软公司。

ProductName——产品名

Version——发布版本。改动版本号后,UpgradeCode也会随之改变。

 

1.3. 设置默认安装路径

选中应用程序文件夹,查看其属性栏。

如下图所示,默认的安装路径为:ProgramFiles路径+生成厂商名+产品名。

举例来说,如果按照我上步骤(2)去设置,默认安装路径名就会是:C:\Program Files (x86)\zp\System\

如果不想显示生产厂商名,可以将[Manufacturer]这个参数删除。

 

2.   添加安装文件

1)添加项目输出

在文件系统一栏中有三个路径:应用程序文件夹用户的程序菜单用户桌面

应用程序文件夹和安装目录完全对应;用户的程序菜单和用户桌面想必不用多解释了吧。

先双击应用程序文件夹,在这里添加安装目录下的内容。

打开右键菜单,点击 添加 -> 项目输出,弹出添加项目输出组菜单。

选中主输出,点击确定。VS自动导入程序的exe文件和程序依赖的DLL文件。

 

2)添加资源文件

当然,你可能还需要添加资源文件。

有两种方法:

一种是,打开右键菜单,点击 添加,选择你要添加的文件、文件夹等资源。需要注意的是保持目录结构和你期望的安装根目录结构一致。

还有一种方法更简单,直接复制、拖拽你想添加的资源文件或文件夹到应用程序文件夹中。

 

3.   添加卸载程序

即在添加你的应用程序项目的时候,多添加一个msiexec.exe进去,这个文件在c:\windows\system32文件夹下。

msiexec.exe这个执行文件用于安装Windows Installer安装包(msi格式的文件)。

 

4.   创建快捷方式

4.1. 添加快捷方式

右击可执行文件和msiexec.exe为它们添加快捷方式。

在快捷方式的属性栏中,可以在Icon项中为其设置一个ico格式的图标。

 

4.2. 设置msiexec快捷方式的参数

对于msiexec.exe的快捷方式,需要设置一些参数,才能正常卸载安装的程序。

步骤如下:

选中安装工程,在属性栏中拷贝ProductCode项的值。

 

然后打开你创建的那个快捷方式的属性对话框,

Aguements属性中输入"/x {ProductCode}",

 

安装程序后,打开注册表,可以查看到卸载信息。

以我的机器(64位操作系统)为例,在

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{产品码}可以看到下图信息。

:如果是32位,应该是HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\CurrentVersion\Uninstall\{产品码}

 

4.3. 为用户的“程序”菜单和用户桌面添加快捷方式

将执行文件的快捷方式分别拷贝到用户的程序菜单用户桌面

将卸载程序的快捷方式拷贝到用户的程序菜单

 

5.   添加依赖项

选中安装项目工程,打开右键菜单,点击属性,弹出属性对话框。

点击系统必备,弹出系统必备对话框。

输出文件名项中可以设置输出文件的路径,安装程序最后会输出到这个路径下。

 

选中要添加的必备组件,点击确定

注意,安装必备组件有三种方式:

1.       安装的时候会从供应商的官网上下载对应组件。

2.       直接将组件打包到安装程序文件中,省去下载的功夫。

3.       指定一个路径去下载对应组件。

 

最后,选中安装项目工程,打开右键菜单,点击生成,就会自动生成安装程序了。

生成的安装程序文件如下图

 

6.   添加注册表

(1)       在“解决方案资源管理器”窗口中选中安装项目,单击鼠标右键,在弹出的对话框中选择“视图/注册表”选项,如图:

(2)       在“注册表”选项卡中,可以在HKRY_CURRENT_USER/SoftwareHKRY_CURRENT_MACHINE/Software下添加键值,当然节点名也是可以重命名的。

单击鼠标右键,在弹出的对话框中选择“新建/字符串值”选项。

如图:我设置了一个名为key1的键,值为”Hello World”

4)选中添加的注册表项值,单击鼠标右键,选择“属性窗口”选项,弹出“属性”窗口,如图,这里可以对注册表项的值作修改。

按照以上步骤,就可以为安装程序添加一个注册表项。在程序安装成功后,查看注册表,可以看到到我们写入的键值。

 

7.   添加、修改安装页面

VS支持对安装程序添加、修改安装页面。但是我在尝试中发现,不够灵活。只能使用默认的样式风格。在这里,我大致的介绍一下。

7.1. 打开用户界面视图

选中安装项目,打开右键菜单,点击 视图 -> 用户界面

 

7.2. 添加对话框

在用户界面视图中,选中 启动,打开右键菜单,点击 添加对话框

 

选择想要添加的对话框,如下图:

选中一个对话框,还可以调整它的执行顺序。如下图:

至于每个对话框的属性设置,在这里不再赘述,有兴趣的朋友可以自己折腾一下。

 本文转自静默虚空博客园博客,原文链接:http://www.cnblogs.com/jingmoxukong/p/4882855.html,如需转载请自行联系原作者

相关文章
|
2月前
|
Java Maven 数据库
IDEA中如何导入jar包、IDEA中找不到对应类改怎样解决?(详细图解过程)
这篇文章提供了在IntelliJ IDEA中导入jar包的详细图解过程,包括当IDEA找不到对应类时的解决方法。内容涵盖了未加入jar包时程序报错的情况、加入jar包后成功启动的效果,以及如何解决驱动问题,确保使用正确版本的数据库驱动。
IDEA中如何导入jar包、IDEA中找不到对应类改怎样解决?(详细图解过程)
|
2月前
|
Java Maven
构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
这篇文章详细介绍了构建SpringBoot项目的过程,包括新建工程、选择环境配置、添加依赖、项目结构说明,并演示了如何编写一个简单的Controller控制器实现输出功能,最后讲解了如何使用Maven将项目打包成可执行的JAR包,并提供了运行JAR包的命令和测试效果。
构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
|
5月前
|
Python
【Python笔记】pip intall -e命令:让你的工程直接使用开源包的源码,可断点调试,修改源码!
【Python笔记】pip intall -e命令:让你的工程直接使用开源包的源码,可断点调试,修改源码!
126 0
|
11月前
|
Oracle Java 关系型数据库
JAVA环境配置常用知识点总结
JAVA环境配置常用知识点总结
42 0
|
监控 jenkins 持续交付
Python3,仅仅2段代码,就实现项目代码自动上传及部署,再也不需要Jenkins了。
Python3,仅仅2段代码,就实现项目代码自动上传及部署,再也不需要Jenkins了。
80 0
|
缓存 Java 程序员
2023年最新无脑安装 Go lang 环境配置并编写、运行、打包第一个 Golang 程序详细步骤,附带图文教程
GO语言也称为Golang,由谷歌出品,随着云计算的发展而不断壮大,近年来,使用GO语言的程序员越来越多,GO程序员一般被称为GOpher。由于博主硬盘空间较为充足,不考虑移动软件安装目录,需要者请自行寻找方法,本文为无脑操作。
370 0
2023年最新无脑安装 Go lang 环境配置并编写、运行、打包第一个 Golang 程序详细步骤,附带图文教程
|
自然语言处理 编译器 程序员
【跟着操作就行了】手把手教你 编译+链接 程序环境教程
【跟着操作就行了】手把手教你 编译+链接 程序环境教程
96 0
|
XML IDE Java
阅读Spring源码第一步:源码编译与创建调试入口
 Spring开源框架经过很长时间的发展,各个模块均已成熟,一个常识就是一个可靠,可扩展的高性能框架,它的代码行数是相当可观的,我用static插件简略测算了一下,Spring的源码有100多万行,可以想象其中的调用逻辑是相当复杂的,所以将Spring源码下载到本地再编译的话,我们就可以通过IDE的debug来来到抽丝剥茧分析源码的目的,并且我们可以很方便的使用idea来查看调用栈,方法的调用关系也就比较明了了。
阅读Spring源码第一步:源码编译与创建调试入口
|
前端开发 应用服务中间件 Apache
Tomcat源码学习系列之二:IDEA导入Tomcat源码
在学习Tomcat源码之前,我们首先需要将Tomcat在IDEA中进行导入后,进行代码调试。 Idea导入 Tomcat源码步骤 总结
Tomcat源码学习系列之二:IDEA导入Tomcat源码
|
Android开发 Python Windows
Python编程:两步完成eclipse安装Python开发环境
Python编程:两步完成eclipse安装Python开发环境
171 0
Python编程:两步完成eclipse安装Python开发环境