zoukankan      html  css  js  c++  java
  • GAC write failed when upgrade with InstallShield

    在接近final-build的时候,突然发现当前版本从上一个版本upgrade的时候,需要写到GAC (Global Assembly Cache)的assambly会写失败掉。但是只会在特定的Microsoft OS (我的重现环境是Win7)下会有这样的问题。

    失败的具体情况为:

    upgrade在卸载前版本的时候,GAC是清理干净了;

    安装新版本的过程时,GAC会写不进去;

    这种情况下,打开新版本,在task manager可以看到两个叫MSIEXEC.exe(windows installer进程)的进程被创建了;

     

    纠其原因,是upgrade的时候,一些程序需要的global assembly不能正常的写到GAC。

    这时候打开程序时,运行到引用这些global assembly的程序逻辑时,会发现这些assembly的缺失,所以新建了windows installer进程试图从installer中重新拿到global assembly去写入GAC。

    但是程序逻辑没有停止,会发现引用失败,导致程序失败。只有windows installer把所有的global assembly写完了,再重新打开,程序才能正常启动。

     

    这个是windows的已知bug,并且Microsoft已经给出了补丁。只要在出现问题的环境安装补丁就可以解决这个问题。补丁下载地址如下

    Package:

    -----------------------------------------------------------

    -----------------------------------------------------------

    KB Article Number(s): 981929

    Language: All (Global)

    Platform: x64

    Location: (http://hotfixv4.microsoft.com/Windows%20Vista/sp3/Fix314138/6000/free/410051_intl_x64_zip.exe)

    -----------------------------------------------------------

    KB Article Number(s): 981929

    Language: All (Global)

    Platform: i386

    Location: (http://hotfixv4.microsoft.com/Windows%20Vista/sp3/Fix314138/6000/free/410048_intl_i386_zip.exe)

  • 相关阅读:
    CF1580B Mathematics Curriculum
    [机房测试]变异大老鼠
    http_缓存
    UDP_概述
    记录: webAssembly 延申
    Event
    NetWork_timeLine
    基于Typora的Latex代码书写并移植到word中
    ZooKeeper学习总结
    HBase学习总结
  • 原文地址:https://www.cnblogs.com/larson/p/4238027.html
Copyright © 2011-2022 走看看