2

我有一个 ac# 解决方案,其中包括一个作为 COM 对象访问的 c++ 项目。我在 VS 2010 中构建它,并创建了一个 Windows 安装程序来安装程序。该应用程序是 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++,我无法安装应用程序,这很奇怪。

在此处输入图像描述

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

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

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

4

2 回答 2

1

解决此问题的步骤可在此处找到,产品值可在此处找到。

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

编辑

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>
于 2013-05-04T00:45:40.547 回答
0

解析度

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

来源:http://micc.mitel.com/

于 2015-11-10T07:54:55.753 回答