.net C++;WIX可再发行软件包 < >我编写了一个使用微软SQL Server DLL的代码,这些DLL依赖于一些C++库。最初,代码不在客户端的机器上工作,但是当我安装C++可重分配包时,它工作得很好。

.net C++;WIX可再发行软件包 < >我编写了一个使用微软SQL Server DLL的代码,这些DLL依赖于一些C++库。最初,代码不在客户端的机器上工作,但是当我安装C++可重分配包时,它工作得很好。,.net,visual-c++,wix,.net,Visual C++,Wix,我的问题是如何将这些依赖项与代码一起安装。我正在使用WIX安装软件 谢谢, 阿里这样做: 首先获取C++可重分发(MSM文件)的合并模块。通常它们位于合并模块文件夹(c:\ProgramFiles\Common Files\Merge Modules)中(对于win x64 c:\Program Files(x86)\Common Files\Merge Modules)。它们的名称基于体系结构(32/64位)和VC++版本 在目标目录的标记中,添加具有以下属性的节点: <Director

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

谢谢, 阿里

这样做:

首先获取C++可重分发(MSM文件)的合并模块。通常它们位于合并模块文件夹(

c:\ProgramFiles\Common Files\Merge Modules
)中(对于win x64 c:\Program Files(x86)\Common Files\Merge Modules)。它们的名称基于体系结构(32/64位)和VC++版本

在目标目录的
标记中,添加具有以下属性的
节点:

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

添加

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

将参考
添加到
定义内先前添加的
部分:

<MergeRef Id="MSVCRedist"/>


示例已被提取。

我尝试过,但不起作用。它仍然给出错误VC80.CRT未安装。我可以在安装程序中添加完整的可再发行软件包吗?您可以使用来运行可执行的redist。此外,我建议检查redist的安装位置以及安装后SQL Server DLL的位置。