Installshield LE update 2012 - > 2013年 - 安装VC ++可再发行组件不再有效

时间:2014-02-10 09:27:28

标签: visual-c++ visual-studio-2012 installshield redistributable

由于我将我的installshield版本从2012 Spring更新到2013,因此我的安装程序不再需要安装Visual C ++可再发行组件包。 我的应用程序是针对x86平台的,这就是为什么我需要在用户的PC上安装vc_redistx86。它与x64和x86 PC的应用程序相同。

因为我现在正在使用Visual Studio 2012更新4,所以我创建了自己的.prq:

<?xml version="1.0" encoding="UTF-8"?>
<SetupPrereq>
    <conditions>
        <condition Type="1" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{33d1fd90-4274-48a1-9bc1-97e33d9c2d6f}" FileName="" ReturnValue=""></condition>
    </conditions>
    <operatingsystemconditions>
        <operatingsystemcondition MajorVersion="6" MinorVersion="0" PlatformId="2" CSDVersion="" ServicePackMajorMin="2"></operatingsystemcondition>
        <operatingsystemcondition MajorVersion="6" MinorVersion="1" PlatformId="2" CSDVersion="" Bits="1" ServicePackMajorMin="1"></operatingsystemcondition>
        <operatingsystemcondition MajorVersion="6" MinorVersion="2" PlatformId="2" CSDVersion=""></operatingsystemcondition>
    </operatingsystemconditions>
    <files>
        <file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\VC 2012 Redist\x86\vcredist_up4_x86.exe" URL="http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe" CheckSum="7F52A19ECAF7DB3C163DD164BE3E592E" FileSize="0,6554576"></file>
    </files>
    <execute file="vcredist_up4_x86.exe" cmdline="/q" cmdlinesilent="/q" returncodetoreboot="1641,3010"></execute>
    <properties Id="" Description="This prerequisite installs the Microsoft Visual C++ 2012 Runtime Libraries (x86)." AltPrqURL=""></properties>
    <behavior Reboot="2"></behavior>
</SetupPrereq>

当然,我已经为VS2012更新4下载了vc_redist_x86,并放置了\ SetupPrerequisites \ VC 2012 Redist \ x86 \ vcredist_up4_x86.exe

这是对的吗?

1 个答案:

答案 0 :(得分:2)

您必须确保.prq文件嵌入正确的操作系统条件才能在每台目标计算机上正确安装。

根据此MSDN Page - Windows versions,您会发现缺少的内容以及需要添加的内容。

例如,这里只是对Windows 7和8 x86版本的要求,如果要在x64上部署,则缺少这种xml条件:

- operatingsystemcondition MajorVersion =“6”MinorVersion =“0”PlatformId =“2”CSDVersion =“”Bits =“4”ServicePackMajorMin =“2”&gt; operatingsystemcondition

干杯:)