感觉网上的资料比较零散,所以自己写一下较基础实用的出来,本文以VS 2005为例!!
创建安装和部署
文件→创建→项目→安装和部署,选择“安装项目”命名为:SetupDemo , 然后 “【确定】”
配置安装和部署
右击 SetupDemo 选择“添加”这里你可以选择打包的文件,如“项目输出”系统将项目输出的文件自动打包,这里我选择“文件”这样可以打包自己想要的文件,灵活一点!同时左边的“应用程序文件夹”也会相应添加文件。接着可以创建文件的快捷方式放到“用户程序菜单”和“桌面”。这里要注意的一点是,所有的快捷方式都没有图标的,因此要将程序的图标添加到“应用程序文件夹”中,并在快捷方式的ICON属性选择相应的图标文件,这样生成出来的才能正确显示。修改Author、ProductName、Title属性信息,在“应用程序文件夹”的DefaultLocation属性省去[Manufacturer]制造商名称,简化默认安装文件路径。
设置系统必备
.NET的程序需要Framework框架的支持才能运行,我们希望做到的是当系统没有Framework的时候,安装Framework,有的时候就直接安装应用程序,起到一个检查作用!幸好VS 2005 有这点功能,方法是右击 SetupDemo 属性→系统必备,选择需要的系统组件Framework2.0,安装位置选择“从与我的应用程序相同的位置下载系统必备组件”。
卸载
VS 2005并没有提供好的卸载方法!这里我们只能使用msiexec.exe来引导,可以通过C:/WINDOWS/SYSTEM32下找到。
将其添加到“应用程序文件夹”,创建其快捷方式并重命名为“卸载”放到“用户程序菜单”,点击 SetupDemo 找到ProductCode(应用程序标识符)将其复制粘贴到 “卸载”这个快捷方式的Arguments属性上,并在其前面加上 " /x "
如:/x{4FB5ED2B-DAF2-4F23-A271-CA06CA1C1A9B}
这里顺便发一下有关msiexec命令行参数,给有需要的朋友!!
msiexec /Option <Required Parameter> [Optional Parameter]
安装选项
</package | /i> <Product.msi>
安装或配置产品
/a <Product.msi>
管理安装 - 在网络上安装产品
/j<u|m> <Product.msi> [/t <Transform List>] [/g <Language ID>]
播发产品 - m 播发到所有用户,u 播发到当前用户
</uninstall | /x> <Product.msi | ProductCode>
卸载产品
显示选项
/quiet
安静模式,无用户交互
/passive
无从参与模式 - 只显示进程栏
/q[n|b|r|f]
设置用户界面级别
n - 无用户界面
b - 基本界面
r - 精简界面
f - 完整界面(默认值)
/help
帮助信息
重新启动选项
/norestart
安装完成后不重新启动
/promptrestart
提示用户重新启动(如果必要)
/forcerestart
安装后总是重新启动计算机
日志选项
/l[i|w|e|a|r|u|c|m|o|p|v|x|+|!|*] <LogFile>
i - 状态消息
w - 非致命警告
e - 全部错误消息
a - 操作的启动
r - 操作特定记录
u - 用户请求
c - 初始界面参数
m - 内存不足或致命退出信息
o - 磁盘空间不足消息
p - 终端属性
v - 详细输出
x - 额外调试信息
+ - 扩展到现有日志文件
! - 每一行刷新到日志
* - 记录所有信息,除了 v 和 x 选项
/log <LogFile>
与 /l* <LogFile> 相同
更新选项
/update <Update1.msp>[;Update2.msp]
应用更新
/uninstall <PatchCodeGuid>[;Update2.msp] /package <Product.msi | ProductCode>
删除产品的更新
修复选项
/f[p|e|c|m|s|o|d|a|u|v] <Product.msi | ProductCode>
修复产品
p - 仅当文件丢失时
o - 如果文件丢失或安装了更旧的版本(默认值)
e - 如果文件丢失或安装了相同或更旧的版本
d - 如果文件丢失或安装了不同版本
c - 如果文件丢失或较验和与计算的值不匹配
a - 强制重新安装所有文件
u - 所有必要的用户特定注册表项(默认值)
m - 所有必要的计算机特定注册表项(默认值)
s - 所有现有的快键方式(默认值)
v - 从源运行并缓存本地数据包
设置公共属性
[PROPERTY=PropertyValue]