总体介绍
解决方案里面需要有三个项目: Winform程序, Setup Project , 自定义配置项目(安装程序类)
1, Winform程序 就是你要打包的程序
2, Setup Project 就是制作安装包的
3, 自定义配置项目(安装程序类): 一个命令行项目里面只有一个安装程序类,用来控制安装后自动打开程序( 没有需求可以不要 )
一, 最简教程
1, 安装扩展
选择 扩展–>管理扩展–>联机 (或者选择 工具–>扩展和更新–>联机),搜索Microsoft Visual Studio Installer Projects,进行安装,安装好之后,重启vs(一定要重启)
2, 新建项目
选择 Setup Project 模板新建打包项目, 例如Setup1
3, 添加需要打包的项目
右键Setup1项目–> Add --> 项目输出 (一般会自动选中目标项目) --> 确定
4, 测试
"生成"没有报错后, 右键Setup1项目–>安装, 测试没问题就可以了
二, 安装配置
以安装后启动exe文件举例:
新建命令行项目, 右键项目–>添加–>新建项–>安装程序类, 修改代码如下:
// 安装后启动exe文件举例
[RunInstaller(true)]
public partial class Installer1 : System.Configuration.Install.Installer
{public Installer1(){InitializeComponent();}protected override void OnBeforeInstall(IDictionary savedState){Console.WriteLine("安装开始, 这里的代码用于测试和验证");string dir = "C://公司";if (!System.IO.Directory.Exists(dir)){Directory.CreateDirectory(dir);}}protected override void OnAfterInstall(IDictionary savedState){// 设置要打开的exe文件的路径string exePath = "C:\\公司\\产品\\APP.exe";// 安装后启动exe文件Process.Start(exePath);Console.WriteLine("安装结束");string dir = "C://公司//Success";if (!System.IO.Directory.Exists(dir)){Directory.CreateDirectory(dir);}}
}
这样就可以了, 生成exe, 在Setup->Add->文件, 把exe加进来
在右键项目->View–>自定义操作–>install–>右键"添加自定义操作", 选中刚刚加入的exe, 即可
安装的时候会自动执行Installer1里面的代码
三, 其他常见配置
直接修改Setup1.vdproj 文件
有一些配置在VS里面不好设置, 直接修改 Setup Project的项目主文件: xxxxx.vdproj
以我的项目举例: 用记事本打开 Setup1.vdproj 文件 , 搜索需要配置的项目进行修改
// 修改产品名: 就是在安装对话框里面显示的产品的名字
"ProductName" = "8:xxxxx"// 修改公司名称:
"Manufacturer" = "8:xxxxxxx"// 修改程序的默认安装路径, 例如安装到C盘根目录
"DefaultLocation" = "8:C:\\[Manufacturer]\\[ProductName]"// 修改默认为所有用户安装 :
"InstallAllUsers" = "11:TRUE"// 安装包需要以管理员权限运行 : 例如要修改注册表的时候
"RequiresElevation" = "11:TRUE"
添加桌面快捷方式
右键"主输出",创建一个快捷方式, 再把快捷方式拖动到 “User’s Desktop” 里面, 改个名字
注册DLL
有些dll需要注册
手动的命令类似这样: regsvr32 D:\grdes6.dll
这里可以设置安装时自动注册:
先把dll添加进来(Add->文件), 右键添加进来的dll设置“Register”属性为“vsdrfCOMSelfReg”。