質問

I have a c# solution that includes a c++ project accessed as a COM object. I am building this in VS 2010, and have created a Windows Installer to install the program. The application is 64 bit, and runs fine on most machines. However, I want to add "Visual C++ 2010 Runtime Libraries (x64)" as a prerequisite, so I can be sure everything required is available on the system.

If I make the change, every time I try installing on my test system, where it worked before, I am told that Visual C++ needs to be installed. I click the Install button, say yes to the UAC, and get an error saying "A newer version of Microsoft Visual C++ 2010 Redistributable has been detected on the machine." I am then given a message that "An error occured while installing system components... Setup cannot continue until all system components have been successfully installed."

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) 

I find it odd that I can't install the application if a newer version of C++ is already on the computer.

enter image description here

One additional bit of information: to get the msi file to work with the 64 bit installation, I need to edit it with Orca, go to Binary -> InstallUtil _> and change the field to the 64 bit version of the installUtilLib.dll. Since prerequisite checking happens in the exe file, before loading the msi, I don't think this would make a difference, but thought I would add it in. If I do not make the change, the installer crashes immediately.

If anyone knows what I need to do to either get the latest version of Visual C++ to install, or to accept a later version as fulfilling the requirements, I would greatly appreciate the guidance.

Currently testing on Windows 7 x64 system.

役に立ちましたか?

解決

Steps to solve this can be found here, and product values can be found here.

Below are the basic steps that I followed:

Edit

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

Find

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

Change to

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

他のヒント

RESOLUTION

There is no fix for this issue, as it is a limitation of the Microsoft installer when it encounters a newer version of the same Runtime Libraries.

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top