当我的文件集包含对C ++运行时DLL有一个或多个依赖项的DLL时,我需要从VCRedist.exe安装该文件。这可能很困难,因为每个DLL都依赖于特定版本的C ++运行时。
如何自动将运行时可再发行组件添加到我的安装程序?
如何在WinSxS中处理需要不同版本的C ++运行时的DLL?
答案 0 :(得分:1)
您需要安装库所需的最新版本(最高版本)以及将旧版本重定向到新版本的策略文件。
您可以使用Visual Studio安装的合并模块执行这两项操作。它们通常位于C:\Program Files\Common Files\Merge Modules
。请参阅MergeRef
元素和示例how to install Visual C++ redistributable with your installer。您还需要在安装中添加策略合并模块。
答案 1 :(得分:0)
您可以简单地确保安装了最新的vcredist,它会自动包含对旧版本的支持。
我认为在安装程序运行之前使用bootstrapper安装运行时最简单。您可能需要创建自己的包,但为此可以很容易地使用Bootstrapper Manifest Generator。
在product.xml中,您可以添加安装检查以确保它未安装两次,例如:
<InstallChecks>
<MsiProductCheck Property="VCRedistInstalled" Product="{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}"/>
</InstallChecks>
有关其他GUID,请参阅here。
答案 2 :(得分:0)
热量和Votive都不支持所请求的功能。必须手动添加运行时DLL。