我有一个复杂的C ++应用程序,它使用msi安装程序(用wix定义)安装。我的应用程序需要MSVC运行时库,因此Microsoft_VC141_CRT_x64.msm
被合并到我的安装程序中。
<DirectoryRef Id="APPDIR">
<Merge Id="M.visualStudioRuntime" Language="0" SourceFile="$(var.DependenciesPath)/Microsoft_VC141_CRT_x64.msm"
DiskId="1" />
</DirectoryRef>
....
<FeatureRef Id="F.SomeComponent">
....
<MergeRef Id="M.visualStudioRuntime" />
</FeatureRef>
现在在安装过程中,必须验证远程服务器上的某些数据。对于该任务,我将应用程序dll提取到临时文件夹中,加载库并使用必需的参数执行某些功能。根据结果,安装设置是否允许继续。
此dll依赖于第三方(不能完全来自其他团队的第三方)C ++库,该库也使用MSVC运行时,因此静态链接是不可接受的解决方案。
当我从临时文件夹加载应用程序dll时,它需要那些MSVC运行时库。为此,我需要将这些dll精确地存储到此临时文件夹中。
将这些MSVC运行时库提取到临时文件夹的最佳方法是什么?
我已经继承了此安装程序,当前的实现是将这些dll(作为重复项)手动嵌入到安装程序中,并根据预定义的ID提取它们。这是不好的解决方案,我希望需要对其进行正确修复。
[C ++