Windows Installer的简单应用
2010年11月12日
因为要做一个类似Windows Update的东西,以免程序更新时跑来跑去麻烦,虽然类似的工具很多,但是大都很复杂,于是决定自己做一个类似的简单程序。
对比客户端和服务器端的程序版本,并把服务器端新版本程序拷回来都好做(用VPN,相当于局域网内文件复制),但是安装新版本程序就有问题了,因为Windows Installer安装程序时如果发现有以前的版本就会要求你自己删除旧版程序后再重新安装,但我要实现的是自动卸载并安装。直接运行msi文件出错,那我就穿参数,因为没有找到相关资料就猜卸载应该是/u,运行的时候没有卸载来反倒是弹出来一个对话框,里面有Windows Installer的参数设置介绍:
Windows (R) Installer. V 3.01.4000.1830
msiexec /Option [Optional Parameter]
安装选项
安装或配置产品
/a
管理安装 - 在网络上安装产品
/j [/t ] [/g ]
播发产品 - m 播发到所有用户,u 播发到当前用户
卸载产品
显示选项
/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|+|!|*]
i - 状态消息
w - 非致命警告
e - 全部错误消息
a - 操作的启动
r - 操作特定记录
u - 用户请求
c - 初始界面参数
m - 内存不足或致命退出信息
o - 磁盘空间不足消息
p - 终端属性
v - 详细输出
x - 额外调试信息
+ - 扩展到现有日志文件
! - 每一行刷新到日志
* - 记录所有信息,除了 v 和 x 选项
/log
与 /l* 相同
更新选项
/update [;Update2.msp]
应用更新
/uninstall [;Update2.msp] /package
删除产品的更新
修复选项
/f[p|e|c|m|s|o|d|a|u|v]
修复产品
p - 仅当文件丢失时
o - 如果文件丢失或安装了更旧的版本(默认值)
e - 如果文件丢失或安装了相同或更旧的版本
d - 如果文件丢失或安装了不同版本
c - 如果文件丢失或较验和与计算的值不匹配
a - 强制重新安装所有文件
u - 所有必要的用户特定注册表项(默认值)
m - 所有必要的计算机特定注册表项(默认值)
s - 所有现有的快键方式(默认值)
v - 从源运行并缓存本地数据包
设置公共属性
[PROPERTY=PropertyValue]
请查阅 Windows (R) Installer SDK 获得有关
命令行语法的其他文档。
版权所有 (C) Microsoft Corporation. 保留所有权利。
此软件的部分内容系基于 Independent JPEG Group 的工作。
按这个传参数试了好多次(我比较笨),终于成功了。下面把代码贴出来,要安装的程序名是Clock.msi
using System;
using System.Diagnostics;
public class mainTest
{
public static void Main()
{
// Windows Installer的命令为msiexec
ProcessStartInfo startInfo = new ProcessStartInfo("msiexec");
// 卸载程序的参数
startInfo.Arguments = string.Format("/uninstall Clock.msi");
Process p = new Process();
p.StartInfo = startInfo;
p.Start();
p.WaitForExit();
// 安装程序的参数
startInfo.Arguments = string.Format("/i Clock.msi");
p.Start();
p.WaitForExit();
if (p.HasExited)
{
// 安装完毕启动新安装的程序
startInfo = new ProcessStartInfo(@"C:\Program Files\Spider\Clock\Clock.exe");
p.StartInfo = startInfo;
p.Start();
}
}
}
发表评论
-
Windows Phone开发(三)-- 导航原理分析
2012-01-20 01:56 660Windows Phone开发(三)-- 导 ... -
在 Android 平台上应用 Berkeley DB 11gR2 SQL(drop-in模式)(转http://www.cnmsdn.com/html/201004/1270362092ID3134.html)
2012-01-20 01:56 636在 Android 平台上应用 Ber ... -
Android: 你必须掌握的Android命令
2012-01-20 01:56 1025Android: 你必须掌握的Android命令 2011年 ... -
Visual Studio 2010瘦身精简方法
2012-01-20 01:55 927Visual Studio 2010瘦身精简 ... -
AS3.0打造随风吹散效果
2012-01-19 09:42 917AS3.0打造随风吹散效果 2010年07月29日 在这 ... -
一段话一个故事 【微小说】
2012-01-19 09:42 639一段话一个故事 【微小说】 2011年12月17日 生日 ... -
微小说 ≈
2012-01-19 09:42 700微小说 ≈ 2011年1 ... -
校园生活中有哪些搞笑又雷人的小事?
2012-01-19 09:42 589校园生活中有哪些搞笑又雷人的小事? 2012年01月02日 ... -
为期三月
2012-01-19 09:42 690为期三月 2012年01月05日 用一句话开头,一句 ... -
Qt 学习笔记 --Qt SDK 的下载安装与配置
2012-01-17 02:17 656Qt 学习笔记 --Qt SDK 的下 ... -
Android环境搭建(jdk1.6+eclipes3.4.1+Android sdk2.3+adt0.9.7)
2012-01-17 02:17 1166Android环境搭建(jdk1.6+eclipes3.4.1 ... -
Android 3.0 SDK安装教程及系统环境搭建
2012-01-17 02:17 1194Android 3.0 SDK安装教程及系统环境搭建 201 ... -
[书籍资料] MeeGo开发教程汇总{ MeeGo SDK, qemu,Qt,appUp,python }
2012-01-17 02:17 1532[书籍资料] MeeGo开发教程汇总{ MeeGo SDK, ... -
Kinect for Windows SDK可望成微软下一个金矿
2012-01-17 02:17 561Kinect for Windows SDK可望成微软下一个金 ... -
转:开源C++库比较
2012-01-15 21:55 748转:开源C++库比较 2012年01月13日 原文: ... -
java一个学期的成果
2012-01-15 21:55 501java一个学期的成果 2012年01月13日 ... -
linux 客户端 Socket 非阻塞connect编程(转)
2012-01-15 21:54 586linux 客户端 Socket 非阻塞connect编程(转 ... -
Socket编程指南及程序示例(转载)SVN
2012-01-15 21:54 773Socket编程指南及程序示例(转载)SVN 2009年12 ...
相关推荐
Windows Installer正成为Windows上“事实上”的软件安装技术。预安装在最新的Microsoft操作系统上,并且还捆绑了最受欢迎的生产力软件包(Office等),该软件安装程序提供了大量功能特性,可以改进应用程序管理和...
制作msi安装文件 msi打包工具 advanced installer汉化绿色版软件介绍 一款功能强大、可生成符合 MS Windows 认证的 Windows Installer 的 MSI 安装包制作工具,具有友好的图形用户界面,直观而且非常简单的界面,...
它具有友好的图形用户界面,操作简单而直观,功能多样而完备,无需具备任何脚本方面的知识就可以制作出符合Windows Installer要求的安装程序。 Advanced Installer 功能 先进的安装MSI创建。 自动构建工具安装程序...
TI 官方 bqstudio 应用软件; Battery Management Studio(bqStudio)提供了一整套强大的工具,可帮助评估,设计,配置,测试或以其他方式使用TI电池管理产品。 这包括提供对寄存器和数据存储器的完全访问的功能,...
Advanced Installer 是一款功能强大、可生成符合 MS Windows 认证的 Windows Installer 的 MSI 安装包制作工具,具有友好的图形用户界面,直观而且非常简单的界面,创建 MSI 文件包非常方便,用户只需添加文件,修改...
它具有友好的图形用户界面,操作简单而直观,功能多样而完备,无需具备任何脚本方面的知识就可以制作出符合Windows Installer要求的安装程序。 Advanced Installer主要特点: - 安装并注册应用程序资源: 1、文件、...
它具有友好的图形用户界面,操作简单而直观,功能多样而完备,无需具备任何脚本方面的知识就可以制作出符合Windows Installer要求的安装程序。 Advanced Installer主要特点: - 安装并注册应用程序资源: 1、文件、...
能清除windows系统所有应用组件工具,例如adobe工具,一般工具无法卸载干静时,此工具就会发挥重要作用.操作简单,选择要删除的组件,然后remove
Redmine的安装向来是一件麻烦的事情,在工具的介绍中也曾经提出过,随着Remine官方docker镜像的发行使得以前变得无比简单。但是仍然有很多各种情况无法使用docker的场景的存在,bitnami一键安装包给很多用户带来了...
它具有友好的图形用户界面,操作简单而直观,功能多样而完备,无需具备任何脚本方面的知识就可以制作出符合 Windows Installer 要求的安装程序。 主要特点: - 安装并注册应用程序资源: 1、文件、文件夹和可...
Advanced Installer是一款专业的Windows Installer 的 MSI 安装包制作工具软件。软件符合 MS Windows 认证,许开发者或系统管理员简单地制作可靠的MSI软件安装包,用户只需添加文件,修改名称,添加按钮,就可以...
Oracle InstantClient是一个简化的Oracle客户端,其安装、配置过程都很简单,5分钟即可完成。 InstantClient一般不用于开发环境,而是为简化需要通过OCI访问Oracle数据库的应用程序的部署而设计的。 本安装程序...
Advanced Installer 是一款功能强大、可生成符合 MS Windows 认证的 Windows Installer 的 MSI 安装包制作工具,具有友好的图形用户界面,直观而且非常简单的界面,创建 MSI 文件包非常方便,用户只需添加文件,修改...
Oracle InstantClient是一个简化的Oracle客户端,其安装、配置过程都很简单,5分钟即可完成。 InstantClient一般不用于开发环境,而是为简化需要通过OCI访问Oracle数据库的应用程序的部署而设计的。 本安装程序...
Oracle InstantClient是一个简化的Oracle客户端,其安装、配置过程都很简单,5分钟即可完成。 InstantClient一般不用于开发环境,而是为简化需要通过OCI访问Oracle数据库的应用程序的部署而设计的。 本安装程序...
Docker Desktop Installer的安装过程非常简单,只需要双击运行安装包,然后按照安装向导的提示进行操作即可。在安装过程中,用户可以选择安装Docker Desktop的所有组件,也可以只选择安装部分组件,以适应具体的开发...
Advanced Installer 注册机是一款专门针对Advanced Installer(windows安装程序制作工具)出品的一款真实可靠,简单易用的破解辅助工具,它能够自动生成有效的advanced installer注册码,并一键进行注册,支持Advanced...
它具有友好的图形用户界面,操作简单而直观,功能多样而完备,无需具备任何脚本方面的知识就可以制作出符合 Windows Installer 要求的安装程序。 主要特点: - 安装并注册应用程序资源: 1、文件、文件夹和可...
Advanced Installer Architect 破解版 是一款功能强大的Windows软件安装程序制作工具,它允许开发者或系统管理员简单地制作可靠的MSI、EXE等软件安装包,它具有 友好的图形用户界面,直观而且非常简单的界面,创建 ...
软件安装程序制作工具(Advanced Installer Architect)是一款功能强大的Windows软件安装程序制作工具,它允许开发者或系统管理员简单地制作可靠的MSI、EXE等软件安装包,它具有 友好的图形用户界面,直观而且非常简单...