zoukankan      html  css  js  c++  java
  • office 2013补丁包更新

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

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

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

         

     1   private void btnOk_Click(object sender, RoutedEventArgs e)
     2         {
     3             //获取当前程序执行的目录
     4 
     5             this.tipMessage.Text = "正在更新补丁,可能会花费几分钟。。。";
     6 
     7             ThreadPool.QueueUserWorkItem(delegate
     8             {
     9                 string dir = Environment.CurrentDirectory;
    10                 Process proc = null;
    11                 try
    12                 {
    13                     string targetDir = string.Format(dir);
    14                     proc = new Process();
    15                     proc.StartInfo.WorkingDirectory = targetDir;
    16                     proc.StartInfo.FileName = "updateOffice2013.bat";
    17                     proc.Start();
    18                     proc.WaitForExit();
    19 
    20 
    21                     this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
    22                                 (ThreadStart)delegate()
    23                                 {
    24                                     this.tipMessage.Text = "更新完成";
    25                                 });
    26                 }
    27                 catch (Exception ex)
    28                 {
    29                     this.Dispatcher.BeginInvoke(DispatcherPriority.Normal,
    30                                 (ThreadStart)delegate()
    31                                 {
    32                                     this.tipMessage.Text = "更新出错";
    33                                 });
    34 
    35                     Console.WriteLine("Exception Occurred :{0},{1}", ex.Message, ex.StackTrace.ToString());
    36                 }
    37             });
    38         }

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

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

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

    最终安装目录结构如下:

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

          

  • 相关阅读:
    1442. Count Triplets That Can Form Two Arrays of Equal XOR
    1441. Build an Array With Stack Operations
    312. Burst Balloons
    367. Valid Perfect Square
    307. Range Sum Query
    1232. Check If It Is a Straight Line
    993. Cousins in Binary Tree
    1436. Destination City
    476. Number Complement
    383. Ransom Note
  • 原文地址:https://www.cnblogs.com/wangqiang3311/p/7728572.html
Copyright © 2011-2022 走看看