分发VC ++ Redist ...在安装时运行安装程序会导致问题

时间:2010-03-17 11:39:29

标签: visual-c++ installer visual-c++-installer

使用Inno安装程序,我们会将VC++ redistributable与我们的应用分发,以便我们自动运行。我们发现在已经安装的系统上运行它会要求我们修复/撤消安装,这将使用户完全混淆。

有解决方法吗?可能是安装程序上的标志还是什么?

感谢。

4 个答案:

答案 0 :(得分:4)

尝试使用/ q标志 http://support.microsoft.com/kb/227091(假设您通过在其可再发行组件上调用msiexec.exe来安装它)

答案 1 :(得分:3)

出于某种原因,上述答案都不适合我。但这确实如此:

[Run]
Filename: {tmp}\vcredist_x86.exe; Parameters: "/passive /Q:a /c:""msiexec /qb /i vcredist.msi"" "; StatusMsg: Installing 2010 RunTime...
[Files]
Source: vendor/vcredist_x86.exe; DestDir: {tmp}

我通过运行vcredist_x86.exe /?得到了它的提示,正如本帖子底部所述:http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/a8d4d5b4-7927-4c86-95e8-3cd8b3018ae8/

作为进一步说明,另一个可能的重新分配选项是只针对(你的版本)msvcrt的静态链接看到http://blogs.msdn.com/b/vcblog/archive/2007/10/12/how-to-redistribute-the-visual-c-libraries-with-your-application.aspx中的评论(虽然MS显然对这种类型的静态链接不满,至少你赢了不需要dll。

Distributing the Visual C++ Runtime Libraries (MSVCRT)也可能有用。

另请注意,如果您可以保证您可以控制,则可以将msvcr100.dll包含在与可执行文件相同的目录中,这也可以使用,但这不是一个非常标准的解决方案。

答案 2 :(得分:1)

This thread解决了我的问题:

(摘自其他答案中的评论)

答案 3 :(得分:0)

虽然不适用于Inno安装程序,但此相关问题为Visual Studio 2010安装项目提供了解决方案。问题是由于vcredist的SP1更改了产品代码,而Visual Studio使用旧代码。这就是已经安装的检查失败的原因。

Visual C++ 2010 Runtime Libraries prerequisite keeps popping up on a VS 2010 created installer