最近对软件安装包制作研究了一下,下面记录了一种比较简单,不用写代码的方法。
1、New Project---->Other Project Types ---->Visual Studio Installer---->Setup Project
命名为:Install
这时在VS2010的File System栏里中将有三个文件夹,
1.“Application Folder”表示要安装的应用程序需要添加的文件;
2.“User‘s Programs Menu”表示:应用程序安装完,用户的“开始菜单”中的显示的内容,一般在这个文件夹中,需要再创建一个文件夹来存放:应用程序.exe和卸载程序.exe;
3.“User‘s Desktop”表示:这个应用程序安装完,用户的桌面上的创建的.exe快捷方式。
2、应用程序文件夹中点右键添加文件:表示添加要打包的文件;
添加的文件一般是程序在安装后释放在硬盘里的文件,即为程序执行所需要的文件(包括可执行文件、文件夹数据等)。
把需要创建程序快捷方式的图标也添加进来:后缀名为:ico
3、在创建的项目名称(Install)上点击右键:属性
选择系统必备/Prerequisites,然后选择.NET的版本,和Windows Installer3.1(可选项) ,我这里根据项目需求还选则了visual c++ 2010 runtime libraries(x86).
选择:“Download prerequisites from the same location as my application”这样安装包就会打包.NET FrameWork ,在安装时不会从网上下载.NET FrameWork组件;但是安装包会比较大。
VS2010发布.NET4.0的版本,在创建安装程序时,需要设置启动条件:在项目名称(setup1)上,点击右键选择“视图”---->“启动条件”:
然后VS2010会创建如下文件:
在“启动条件”中, 点击“.NET Framework”在Version上面选择 .NET Framework 4 Client Profile;
4、设置安装文件的目录(路径):创建的项目名称(Install)点击左键(不是右键),在属性中设置参数如下图:
其中Author 为作者;Manufacturer为公司名称;ProductName为应用程序的名字;
把InstallAllUsers 设置为True 。(这样在“控制面板”程序中会显示公司的名称;在安装时会默认为“任何人”,否则默认为“只有我”)
在应用程序上点击左键,如下图:第一个为系统主目录(默认C:\Programe),第二个为公司名([Manufacturer]),第三个为应用程序名称,这样在安装时就会创建两层的文件路径。
需要删除DefaultLocation中的:[Manufacturer] 。删除后只有应用程序的名称。
5、创建应用程序图标与卸载程序:
A.在“Application Folder”中的.exe文件中,点击右键,创建快捷方式:
重命名,然后点击右键属性:选择Icon。确定后,拖动此快捷方式到“User‘s Desktop”。
B. “User‘s Programs Menu”中添加一个文件夹,命名为:软件的名称,然后同样的方式创建启动文件.exe一个快捷方式,拖动到“User‘s Programs Menu”刚才建的文件中;
然后给.NET应用程序创建一个卸载程序:
在“Application Folder”中添加:C:\Windows\System32\Msiexec.exe
右键创建快捷方式,重命名为:Uninstall,把此快捷方式拖动到刚才建的文件中;
点击项目名称(Install),在属性中找到:ProductCode
复制此ProductCode ,粘贴到“Uninstall”快捷方式的Arguments属性,前面加/x空格
6、完成以上步骤,就可以生成解决方案了。
7、生成解决方案后,在Release文件夹中就是我们需要的安装包。
下面我们需要解决一个常见问题:
若用户使用我们软件需要安装其他程序或配置文件,即.exe文件,所以我们想让安装程序在执行完成时执行或安装一个指定的程序。
首先打开Custom Actions
然后在自定义操作编辑器中选择“Install”节点。右键选择“Add Custom Action”接着在“Select Item in Project”对话框中,双击“Application Folder”。
选择要执行的程序,然后单击“确定”关闭对话框。
单击该文件,在“属性”窗口中,选择 CustomActionData 属性并键入参数。
再次编译,生成setup.exe。
[参考文献]