如何从Wix安装程序引导项目安装vcredist.exe文件

问题描述:

我正在尝试为我的应用程序安装Visual C++可再发行程序以及.msi。但是,当我去安装该项目,我不断收到“另一个安装目前运行错误”。这里是我的bundle.wxs文件:如何从Wix安装程序引导项目安装vcredist.exe文件

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
<Bundle Name="Application" Version="1.0.0.0" Manufacturer="Manufacturer" UpgradeCode="6c5daa41-4ce9-4f20-94b2-2471a6932542"> 
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" /> 
    <Chain> 
     <!-- TODO: Define the list of chained packages. --> 
     <!-- <MsiPackage SourceFile="path\to\your.msi" /> --> 
     <PackageGroupRef Id="MyPackage" /> 
     <MsiPackage Id="MyApplication" SourceFile=".\Application.msi"/> 
    </Chain> 
</Bundle> 
<Fragment> 
    <PackageGroup Id="MyPackage"> 
     <ExePackage Id="VisualCPlusPlus32Bit" 
       DisplayName="Microsoft Visual C++" 
       SourceFile=".\vcredist_x86.exe" 
       Vital="no" 
       InstallCommand="/q /ACTION=Install" 
       DetectCondition="NOT VersionNT64"/> 
     <ExePackage Id="VisualCPlusPlus64Bit" 
       DisplayName="Microsoft Visual C++" 
       SourceFile=".\vcredist_x64.exe" 
       Vital="no" 
       InstallCommand="/q /ACTION=Install" 
       DetectCondition="VersionNT64"/> 
    </PackageGroup> 
</Fragment> 
</Wix> 

我看过的文档的威克斯这tutorial,但我仍然无法得到Visual C++的第一次安装无需两台安装库同时运行。 谢谢!

+0

您确定这些是正确的命令来运行您的安装?我有几个不同的安装命令版本(感谢MS),如“/ install/quiet/norestart”,“/ Q/C:" msiexec/i vcredist.msi/qn "”,“/ quiet”。运行引导程序时,您还可以查看在%temp%中创建的日志文件,查看失败的程序包。 –

+0

@BrianSutherland在弹出Visual C++安装窗口时,似乎正在调用安装。但是,只有在我的应用程序的安装屏幕后才会弹出。似乎vcredist.exe在我的.msi运行之前没有完成。 – MisterMystery

+0

我可能在某个点上遇到过某个vcredist包的这个问题。会发生什么情况是EXE实际解包并启动另一个程序然后退出,而另一个程序继续(真正的安装)引导程序认为安装完成,因为启动的程序退出0并继续安装其他软件包。您应该能够从cmd行运行安装程序进行测试。你可以反复安装vcredist,所以不用担心为了测试而多次运行它。 –

请参阅How To: Install the Visual C++ Redistributable with your installer。此方法使用合并模块将Visual C++可再发行组件包含在您的msi中,而不是将vcredist作为单独的安装程序运行。

+0

这使我朝着正确的方向前进。我能够得到[this](https://docs.microsoft.com/en-us/cpp/ide/walkthrough-deploying-a-visual-cpp-application-to-an-application-local-folder)解决方案为我工作。谢谢! – MisterMystery