当存在较新版本的先决条件时,无法安装

时间:2013-05-02 17:40:12

标签: c# c++ windows-installer prerequisites

我有一个c#解决方案,其中包含一个作为COM对象访问的c ++项目。我在VS 2010中构建它,并创建了一个Windows Installer来安装该程序。该应用程序是64位,并在大多数机器上运行良好。但是,我想添加“Visual C ++ 2010 Runtime Libraries(x64)”作为先决条件,因此我可以确保系统上可以使用所需的所有内容。

如果我进行更改,每次我尝试在我的测试系统上安装它之前的工作时,我都被告知需要安装Visual C ++。我单击“安装”按钮,对UAC说“是”,并收到错误消息“已在计算机上检测到更新版本的Microsoft Visual C ++ 2010 Redistributable。”然后,我收到一条消息“安装系统组件时出错...在成功安装所有系统组件之前,安装程序无法继续。”

Component Visual C++ 2010 Runtime Libraries (x64) has failed to install with the following error message:
"Asia"

The following components failed to install:
- Visual C++ 2010 Runtime Libraries (x64) 

如果计算机上已有更新版本的C ++,我发现无法安装应用程序,这很奇怪。

enter image description here

另外一点信息:要让msi文件与64位安装一起使用,我需要使用Orca编辑它,转到二进制 - > InstallUtil _>并将该字段更改为64位版本的installUtilLib.dll。由于在exe文件中进行了先决条件检查,因此在加载msi之前,我认为这不会产生影响,但我认为我会将其添加进去。如果我没有进行更改,安装程序会立即崩溃。

如果有人知道我需要做什么才能安装最新版本的Visual C ++,或者接受更高版本以满足要求,我将非常感谢指导。

目前正在Windows 7 x64系统上进行测试。

2 个答案:

答案 0 :(得分:1)

可以找到解决此问题的步骤here,并且可以找到产品值here

以下是我遵循的基本步骤:

编辑

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\vcredist_x64\product.xml

查找

<InstallChecks>
    <MsiProductCheck Property="VCRedistInstalled" Product="{6EE91C1A-A2E7-38CD-AEBB-3B900A4D8868}"/>
</InstallChecks>

更改为

  <InstallChecks>
    <MsiProductCheck Property="VCRedistInstalled" Product="{1D8E6291-B0D5-35EC-8441-6616F567A0F7}"/>
  </InstallChecks>

答案 1 :(得分:0)

  

解决方案

     

此问题无法解决,因为它是Microsoft的限制   安装程序遇到相同运行时的较新版本时   库。

Source : http://micc.mitel.com/