总是有客户发现使用office 2013 下的插件有问题,这个问题出现在低版本上,所以要给office 2013打上补丁,打上后,运行插件ok,出现的bug解决掉了。那么给office打补丁包就成了解决此类bug的方案。如何给office打补丁包呢?

360卫士可以扫描软件漏洞,然后在线下载并安装补丁包。这种方案固然好,但是有两个弊端。首先,客户机器上装360,客户不一定会修补漏洞,假如客户会操作,那么一次扫描,未必能够打完所有office 2013的补丁,有可能得多次扫描。然后,客户机器上没有360安全卫士,这时候,你不可能要求客户装360卫士。 
      在这种情况下,于是我就想到了,把补丁包下载下来,直接让客户装。问题是office 2013的补丁包着实很多,不可能在微软的网站上下载所有的,关键是太耗时间了。我想到用360安全卫士先扫描修补,看能不能直接拿到下载好的补丁包。结果发现360下的补丁包全部是cab格式的。这可能是补丁包安装后的副产品,我在360的补丁管理列表中,直接定位到了微软的下载页面上。后来,经过很长时间摸索,终于知道哪些补丁是很重要的补丁,把这几个关键的补丁打上就好了。在探索的过程中,曾几度陷入烦躁,沮丧当中。早知道,应该对探索充满信心,对结果有着乐观的态度,有助于问题及早解决。

找到补丁包了,接下来就是如何批量安装了。一个一个点击安装绝非良策。那客户怎么忍受呢。于是,我用了批处理+C#程序,简化了整个安装过程,客户只需要轻轻一点,安装补丁的程序就开始运行了:

   private void btnOk_Click(object sender, RoutedEventArgs e)
{
//获取当前程序执行的目录 this.tipMessage.Text = "正在更新补丁,可能会花费几分钟。。。"; ThreadPool.QueueUserWorkItem(delegate
{
string dir = Environment.CurrentDirectory;
Process proc = null;
try
{
string targetDir = string.Format(dir);
proc = new Process();
proc.StartInfo.WorkingDirectory = targetDir;
proc.StartInfo.FileName = "updateOffice2013.bat";
proc.Start();
proc.WaitForExit(); this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(ThreadStart)delegate()
{
this.tipMessage.Text = "更新完成";
});
}
catch (Exception ex)
{
this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
(ThreadStart)delegate()
{
this.tipMessage.Text = "更新出错";
}); Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
}
});
}

用wpf写的小小的一段代码,关键的核心在于 updateOffice2013.bat 这个批处理文件,文件的内容很简单:

cd /d %~sdp0
for %%i in (*.exe) do %%i /q

第一句切换到批处理文件所在的目录,第二句循环执行exe文件 /q 参数表示静默安装,不要弹出对话框之类的东西。

最终安装目录结构如下:

注意:安装包是按版本顺序排序的,用户右键以管理员的权限运行 office2013Update.exe即可。

office 2013补丁包更新的更多相关文章

  1. Windows7SP1补丁包(Win7补丁汇总) 32位/64位版 更新截至2016年11月

    Windows7SP1(64位)补丁包(Win7补丁汇总)更新到本月最新.包含Windows7SP1中文版所有重要补丁,可离线安装,适用于Windows 7 SP1 64位 简体中文系统.包含Inte ...

  2. Office 2007 SP3 正试版补丁包下载

    这仅仅是下载补丁包.下载地址也是微软官网的.以下是MD5是我下载后校验的. 2007 Microsoft Office 套件 Service Pack 3 (SP3) 文件名: office2007s ...

  3. 自翻------Office 2013 RT 使用说明

    Office Home and Student 2013 RT Preview的更新 介绍 Microsoft已发布Microsoft Office Home and Student 2013 RT ...

  4. 如何查看SQL Server的版本、补丁包信息?以及如何鉴别是否需要升级自己的SQL Server?

    作为一个SQL Server的数据库管理人员,经常需要碰到的一个问题就是查看自己SQL Server属于哪个版本,是否安装了最新的修复补丁包,是否安装了最近的安全补丁.在此之前,我们可以通过以下SQL ...

  5. 另类Unity热更新大法:代码注入式补丁热更新

    对老项目进行热更新 项目用纯C#开发的? 眼看Unity引擎热火朝天,无数程序猿加入到了Unity开发的大本营. 一些老项目,在当时ulua/slua还不如今天那样的成熟,因此他们选择了全c#开发:也 ...

  6. VSTO学习笔记(十五)Office 2013 初体验

    原文:VSTO学习笔记(十五)Office 2013 初体验 Office 2013 近期发布了首个面向消费者的预览版本,我也于第一时间进行了更新试用.从此开始VSTO系列全面转向Office 201 ...

  7. Wix打包系列 (六)制作升级和补丁包

    原文:Wix打包系列 (六)制作升级和补丁包 前面我们已经知道怎么制作一个完整安装包了,但我们的软件往往不能一次性就满足客户的需要,当客户需要我们给软件进行升级的时候,我们应该怎么做呢? 在这之前,我 ...

  8. 如何使用Beyond Compare 对比差异文件【制作Patch(补丁包)文件】

    场景:研发部的代码从SVN变更至GIt,通过Jenkins每天自动生成程序包. 如需要获取单独的程序包更新,而不是整个程序包覆盖更新,这时候就需要用到Beyond Compare 对比工具 操作步骤1 ...

  9. windows离线补丁包下载路径-云盾安骑士

    我们有一台阿里云服务器,只有内网可以访问,无外网资源. 阿里云账户邮箱反复收到阿里云云盾的漏洞报警通知,推荐安装安骑士组件. 安骑士组件是收费服务.阿里云服务器,无法连上外网,无法自动安装补丁.需要将 ...

随机推荐

  1. Dynamics 365 Online-多选域

    参与过Dynamics CRM相关工作的朋友们都知道,Dynamics 365之前并没有多选域字段,想要实现多选域,需要自己添加WebResource定制,而这也带来了一系列需要考虑的情况,比如额外的 ...

  2. 关于eclipse安装springide的记录

    近些天,又开始学习springmvc,使用eclipse进行开发,由于很多快捷键时候需要安装springide插件才能出来,我遇到配置DispatcherServlet,结果alt+/出不来Dispa ...

  3. JPA数据懒加载LAZY配合事务@Transactional使用(三)

    上篇博文<JPA数据懒加载LAZY和实时加载EAGER(二)>讲到,如果使用懒加载来调用关联数据,必须要保证主查询session(数据库连接会话)的生命周期没有结束,否则,你是无法抽取到数 ...

  4. ACdream 1015 Double Kings 树的重心

    思路:删除根结点,其最大子树的节点最少.求一次树的重心即可. AC代码 #include <cstdio> #include <cmath> #include <ccty ...

  5. MongoDB,子查询

    //1.从sub(订单明细)对订单号分组,查询最多子订单的单号一条数据,重命名orderNo字段为num//2.根据这个sub.num(从结果集里获取第一条结果),查询main(主档表) db.mai ...

  6. Android开发之Android Context Menu

    1 Creatinga上下文菜单, Todefine上下文菜单的外观和行为,推翻youractivity的上下文菜单回滚方法,onCreateContextMenu()和onContextItemSe ...

  7. The Windows account sa does not exist and cannot be provisioned as a SQL Server system administrator

    今天遇到一个案例,在使用命令修改一个测试服务器(SQL Server 2014标准版)的服务器排序规则时,遇到了下面错误信息 (具体账号信息脱敏处理,随机生成一个账号密码) The Windows a ...

  8. R︱sparkR的安装与使用、函数尝试笔记、一些案例

    本节内容转载于博客: wa2003 spark是一个我迟早要攻克的内容呀~ ------------------------------------- 一.SparkR 1.4.0 的安装及使用 1. ...

  9. 用dd实现linux硬盘备份

    一个去年的老本,500G硬盘,空间各种捉急,准备迁移到公司的台式机上,却发现Linux上迁移环境没有Windows下那么方便,只能复制整块硬盘了. 从公司拿了一块1T的硬盘,插入移动硬盘盒(淘宝上搞的 ...

  10. vxWorks内核实现基本原理

    内核实现基本原理     VxWorks 内核维护三个队列:tick队列.ready 队列.active 队列.另外还有一个队列涉及任务,即任务等待资源时所处的队列,这个队列可以是VxWorks内核提 ...