创建微软安装包
1) 创建安装和部署项目:
① 右 击当前解决方案——Add——New Project,在弹出的窗口中选择Other Project Types——Setup and Deployment——Setup Project;然后在下方文本框中输入Name,点击“OK”按钮。新添加的安装和部署项目会出现在解决方案列表中。
2) 创建组件注册项目:
① 右击当前解决方案——Add——New Project,在弹出的窗口中选择 Visual C#——Class Library;然后在下方文本框中输入Name,点击“OK”按钮。新添加的项目会出现在解决方案列表中。
② 右击该项目——Add——New Item,在弹出的窗口中选择Installer Class;在下方文本框中输入Name,点击“Add”按钮添加文件并关闭窗口。
③ 选中刚添加的文件,按F7转到代码页,在构造函数下方添加以下方法:
01 |
protected override void OnAfterInstall(IDictionary savedState) |
04 |
base .OnAfterInstall(savedState); |
08 |
string LogicDir = Context.Parameters[ "LogicDir" ]; |
14 |
System.Diagnostics.Process.Start( "cmd" , @"/s regsvr32 " + @LogicDir + @"ComUtilities.dll /c" ); |
注意:需要using System.Configuration.Install;
3) 在安装和部署项目中添加要安装的项目和文件:
① 添加项目:右击项目——View——File System,在出现的界面中,右击左列的Application Folder——Add——Project Output,在弹出的窗口中选择相应的Project,然后点击“OK”按钮。多个项目重复多次。在这里我们假设我们开发的项目为MainProject,注册组件的项目名称为RegDll,那么我在弹出的窗口中先选择项目MainProject,点击“OK”后,我在重复添加项目RegDll。
② 添加文件:右击项目——View——File System,在出现的界面中,右击左列的Application Folder——Add——File,在弹出的窗口中选择C:\WINDOWS\system32 \misexec.exe;
③ 创 建快捷方式:在右列中选择Primary output from MainProject(Active),右击 选择Create Shortcut to Primary output from MainProject(Active),你可以按F2给新添加的快捷方式更名。右击msiexec.exe 选择 Create Shortcut to misexec.exe,你可以按F2将刚生成的快捷方式更名为“卸载”;
④ 创建程序组:右击左列的User’s Programs Menu选择 Add——Fold,你可以将新创建的文件夹更名,当软件安装完毕后它将出现在程序组中,然后将上一步创建的两个快捷方式拖到新创建的文件夹中。
⑤ 实现“卸载”的功能:选中安装和部署项目,按F4,复制ProductCode的内容,然后选中“卸载”快捷方式,按F4,将Arguments 的内容更改为:/x 刚复制的ProductCode的内容。
4) 实现在安装时注册组件:
右击安装和部署项目——View——Custom Actions,在出现的界面中右击左列的Install——Add Custom Action,选择Application Folder中的Primary output from RegDll(Active)。
修改“主输出来自RegDll (活动)”的CustomActionData属性为 /LogicDir="[TARGETDIR]\"
5) 自动检测当前系统中MDAC、.Net Framework版本、Windows Installer3.1是否满足版本要求,如果不满足则安装:
右击安装和部署项目选择属性,在弹出的窗口中点击按钮 “Prerequisites”。选中MDAC2.8、.Net Framework2.0、Windows Installer3.1;然后选中Download prerequisites from the same location as my application 单选按钮,点击“OK”,再点击“OK”。
6) Rebuild项目生成安装包。