带有WIX的C ++ Redistributable包

时间:2012-06-29 12:56:50

标签: .net visual-c++ wix

所以,我写了一个使用一些Microsoft Sql服务器dll的代码,这些dll依赖于一些C ++库。最初代码不能在客户端的机器上运行,但是当我安装C ++ Redistributable Package时,它工作正常。

我的问题是如何将这些依赖项与我的代码一起安装。我正在使用WIX来安装该软件。

谢谢, 阿里

1 个答案:

答案 0 :(得分:6)

这样做:

首先获取C ++可再发行组件(MSM文件)的合并模块。通常它们位于Merge Modules文件夹(c:\ProgramFiles\Common Files\Merge Modules)内(对于win x64 C:\ Program Files(x86)\ Common Files \ Merge Modules)。它们的名称基于体系结构(32/64位)和VC ++版本。

在目标目录的<DirectoryRef>标记中添加具有以下属性的<Merge>节点:

<DirectoryRef>
    <Merge
        Id="MSVCRedist" DiskId="1" Language="0"
        SourceFile="Microsoft_VC90_CRT_x86.msm"/>
</DirectoryRef>

添加<Feature>

<Feature
    Id="VCRedist" AllowAdvertise="no" Display="hidden" Level="1"
    Title="Visual C++ 9.0 Runtime"/>

将引用<MergeRef>添加到<Merge>定义中之前添加的<Feature>部分:

<MergeRef Id="MSVCRedist"/>

示例已被解除from here