1. InstallerProject,是VS集成的一个打包工具,需要下载组件,我用的是这个:
InstallerProject功能比较简单,有时候无法满足所有的安装需求。
例如,在安装完成后想添加一个启动APP,但是安装界面上没有合适的button或者复选框(也许有,我找不到,也不知道怎么绕过去。。。)
2. InstallShield,我用这个比较顺手,功能也很全,就是需要license,也就是要收费,而且是每个电脑一个license。
3. Wix Toolset,首先功能全,其次免费。(下载:https://wixtoolset.org/releases/)
下面首先介绍一下wix toolset,(摘自https://docs.microsoft.com/zh-cn/archive/msdn-magazine/2007/march/automate-releases-with-msbuild-and-windows-installer-xml)
"WiX uses a declarative language, not a procedural one, which means you describe what your
installation will look like, not what steps need to be followed in order to achieve it.
This may be different from what you are accustomed to, but it is surprisingly easy to
learn. Typically, your WiX source files will be populated by describing files that will be
installed on the target machine. I will focus on those components here.
In a WiX source file, there are three main elements with respect to the files you intend
to install: File, Component, and Feature. A File element is a reference to an individual
file. Files must be contained in a Component element, which is the smallest unit to be
installed. That is, if you have a component containing 100 files and you install that
component, all of its contained files are installed. Conversely, if that component is not
installed, none of the files are installed. Creating components that contain a large
number of files is not recommended.
Components are always contained in a Feature element and can be contained in more than
one feature. A feature is a set of components and potentially of sub-features. If your
installer has a graphical interface that allows the user to select which items to
install, they are actually selecting features."
(“WiX 使用声明性语言,而不是过程性语言,这意味着您要描述安装将什么样子的,而不用描述实现它需要执行哪些步骤。这可能与您之前的习惯不同,但它非常容易掌握。通常,wix源文件由要安装在目标计算机上的描述文件填充。我将重点讨论这些组件。
在 WiX 源文件中,有三个与您希望安装的文件有关的主要元素:文件、组件和功能。文件元素是对单个文件的引用。文件必须包含在组件元素中,组件元素是最小的安装单 位。就是说,如果您有一个包含 100个文件的组件,并且您要安装该组件,则会安装它包含的所有文件。相反,如果不安装该组件,则不安装任何文件。建议不要创建包含大量文件的组件。
组件始终包含在功能元素中,并且可以包含在多个功能中。功能是一组件,也可能是一组子功能。如果安装程序具有允许用户选择要安装哪些项的图形界面,则用户实际是在选择功能。”)