Ela*_*lan 22 setup-project visual-studio-2010 bootstrapper visual-c++
我使用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
Run Code Online (Sandbox Code Playgroud)
在此文件中,您将找到以下内容:
<InstallChecks>
<MsiProductCheck Property="VCRedistInstalled" Product="{6EE91C1A-A2E7-38CD-AEBB-3B900A4D8868}"/>
</InstallChecks>
Run Code Online (Sandbox Code Playgroud)
以上包含不正确的产品代码.将以上内容替换为Visual C++ 2010 SP1可再发行组件的正确产品代码,如下所示:
<InstallChecks>
<MsiProductCheck Property="VCRedistInstalled" Product="{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}"/>
</InstallChecks>
Run Code Online (Sandbox Code Playgroud)
此处的链接显示各种VC++ 2010 Redistributables的正确产品代码.
Cos*_*rvu 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\
Run Code Online (Sandbox Code Playgroud)
然后,您可以在安装项目属性页面中选择先决条件.