我有来自DotNet 1.1应用程序(使用Visual Studio 2003)的旧版安装,它不会在Windows 7上的FIRST安装上部署msflxgrd.ocx文件。如果我卸载MSI然后再次运行相同的MSI,( msflxgrd.ocx文件部署,并在同一台笔记本电脑上安装。起初我怀疑这是一个regsvr32问题,但由于没有文件要注册,这似乎更像是一个部署问题。我对机器有管理权限。
我有MSI日志的链接here:
有人能帮忙吗?
谢谢!
答案 0 :(得分:0)
从我在日志1中看到的情况来看,机器并不像你想象的那么干净。 FindRelatedProducts正在寻找您产品的先前安装,并在安装新版本之前告诉RemoveExistingProducts将其卸载。
我已经看到违反组件规则的情况,MSI认为不需要安装文件,但是删除正在升级的产品并且文件最终没有安装时,文件会被卸载。通过卸载并重新安装,您可以将其分解为两个步骤,以便当第二个安装评估对文件的需求时,它将返回为是并安装。
这是一个OCX COM服务器的事实只是一个巧合,并不是真正的问题。
我需要安装MSI和MSI升级才能为您提供特定的补救措施。
动作开始14:55:44:FindRelatedProducts。 MSI(s0)(A0:18)[14:55:44:119]:财产变更:增加PREVIOUSVERSIONSINSTALLED财产。其值为“{08D8BF6E-E399-4B8A-8B8D-7DFF68F81131}”。 MSI(A0:18)[14:55:44:119]:跳绳动作:ERRCA_CANCELNEWERVERSION(条件为假) MSI(A0:18)[14:55:44:119]:采取行动:VSDCA_VsdLaunchConditions 行动结束14:55:44:FindRelatedProducts。返回值1。
答案 1 :(得分:0)
我之前的回答是解释出了什么问题。这个答案将是如何解决它。
InstallShield为包含版本6.0.84.18的此控件分发合并模块。但是,似乎这个合并模块已经过时了,并且不包含Microsoft在几年前发布的安全更新。见线程:
Updated Merge Modules for MS08-070 Security Bulletin
在线程中,Mike Marino试图从微软获得更新的合并模块,但被告知:
Microsoft不会为这些提供合并模块。他们 建议用户构建自己的MSM或包含这些MSM 文件在他们自己的MSI中。
所以这就是我要做的。确保msflxgrd.dll是MS08-070(6.1.98.14)或更高版本的最新版本。将它写入SystemFolder目录中的安装程序。将其标记为Permanenet = true。将Register属性设置为vsdraCOM并设置SharedLegacyFile = true。
重新构建安装程序并再次测试升级方案。你应该好好去。