2012-06-29 68 views
4

所以,我写了一个代码,它使用了一些Microsoft Sql服务器DLL,这些DLL依赖于一些C++库。最初代码在客户机上不工作,但是当我安装C++ Redistributable Package时,它工作正常。C++可再发行组件包与WIX

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

感谢, 阿里

回答

6

这样做:

首先获得的C++可再发行合并模块(MSM文件)。通常它们位于合并模块文件夹(c:\ProgramFiles\Common Files\Merge Modules)(用于win x64 C:\ Program Files(x86)\ Common Files \ Merge模块)中。他们的名字基于架构(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

+0

我试过了,它没有工作。它仍然给错误VC80.CRT未安装。我可以在安装程序中添加完整的Redistributable软件包吗? – Ali

+0

您可以使用[WiX引导程序刻录](http://robmensching.com/blog/posts/2009/7/14/Lets-talk-about-Burn)来运行可执行文件重做程序。此外,我建议检查已安装redist的位置以及安装后SQL Server DLL的位置。 –

相关问题