OCX文件不从Windows 7上使用Visual Studio 2003生成的MSI进行部署

时间:2012-03-20 19:23:12

标签: windows-7 windows-installer .net-1.1 visual-studio-2003 ocx

我有来自DotNet 1.1应用程序(使用Visual Studio 2003)的旧版安装,它不会在Windows 7上的FIRST安装上部署msflxgrd.ocx文件。如果我卸载MSI然后再次运行相同的MSI,( msflxgrd.ocx文件部署,并在同一台笔记本电脑上安装。起初我怀疑这是一个regsvr32问题,但由于没有文件要注册,这似乎更像是一个部署问题。我对机器有管理权限。

我有MSI日志的链接here

有人能帮忙吗?

谢谢!

2 个答案:

答案 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。

重新构建安装程序并再次测试升级方案。你应该好好去。