如果你是用Visual Studio自带的打包项目打包了一个Installer,并且生成的.msi和setup.exe安装文件,并且在项目安装系统必备环境中选择了"Visual C++ 2010运行库(x86)",那你一定会发现,点击setup.exe安装以后,如果再次点击setup.exe安装文件,一定会需要再次安装C++运行环境,好像每次都不能通过C++已安装的前提条件。
原因是,居然是微软的C++运行环境产品Product Code改了!
解决方案如下
找到这个文件
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\vcredist_x86\product.xml
查找到里面的这一段
<InstallChecks>
<MsiProductCheck Property="VCRedistInstalled" Product="{6EE91C1A-A2E7-38CD-AEBB-3B900A4D8868}"/>
</InstallChecks>
把里面的Product改成
<InstallChecks>
<MsiProductCheck Property="VCRedistInstalled" Product="{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}"/>
</InstallChecks>
Visual Studio Installer打包后生成的安装文件每次执行都需要重新安装C++ 2010运行库(x86)的解决方案