我使用Visual Studio 2010版本10.0.40.219.1 SP1 Rel创建了一个安装程序。我的应用程序是为x86构建/编译的,需要VC ++运行时库。因此,安装项目配置为使用VC ++运行时库作为先决条件。
每次运行安装程序时,我都会弹出“您的计算机上将安装以下组件”。 “Visual C ++ 2010运行时库(x86)”。它是第一次按预期安装。第二次及以后,它会询问我是否修复或删除VC ++ 2010。
这个弹出窗口应该只显示一次,第一次发现没有安装VC ++可再发行组件。
有没有人见过这个?有谁知道如何解决这个问题?
解决方案:
我接受的答案给了我解决问题所需要的东西。以下是我为解决这个问题所做的工作的细节,事实上这非常简单。我编辑了文件:
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>
以上内容包含错误的产品代码。将以上内容替换为Visual C ++ 2010 SP1可再发行组件的正确产品代码,如下所示:
<InstallChecks>
<MsiProductCheck Property="VCRedistInstalled" Product="{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}"/>
</InstallChecks>
链接here显示各种VC ++ 2010 Redistributables的正确产品代码。
答案 0 :(得分:14)
这是因为先决条件检测标准不正确。
解决方案是使用正确的条件创建自己的自定义先决条件。也许这篇文章会有所帮助: http://blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspx
Visual Studio安装项目不支持此功能。但可以通过手动生成所需的清单来完成。
您可以在此处找到清单结构:http://msdn.microsoft.com/en-us/library/ms229223(VS.80).aspx
可以使用Bootstrapper Manifest Generator工具自动生成这些清单。
生成包清单后,您可以将所有这些文件(包括包)添加到Visual Studio先决条件文件夹中的单独文件夹中,例如:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\
然后,您可以在安装项目属性页面中选择先决条件。