VCRedist - 如何判断它是否已被运行?

时间:2009-02-24 19:08:05

标签: c++

我有一个旧的VC ++应用程序,我们已经移植到VS2005。我们现有的用户需要获取VC ++ 2005 DLL,因此我的应用程序将vcredist_x86.exe放在他们的计算机上并运行它。我检查HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ SideBySide \ Installations \下的注册表项是x86_Microsoft.VC80.MFC blah blah 8.0.50727.762 blah blah ... 但是......看起来这在Vista上并不存在。检查以确保vcredist运行完成的正确条目是什么,以便我不必再次运行它?

谢谢!

3 个答案:

答案 0 :(得分:1)

我从来没有发现任何明确的内容,尽管您可以查看用户winsxs中的windir文件夹中的正确文件夹和文件。

我的应用程序的安装程序在安装时会安静地运行它,如果它已经存在则不会导致任何问题。

答案 1 :(得分:0)

  

所以我的应用程序正在放置   vcredist_x86.exe在他们的机器上   运行它。

这是一种非常不规范的做法 通常,并排包会自动添加到“检测到的依赖项”

下的安装程序对象的依赖项中

答案 2 :(得分:0)

保持简单:只需将redist设置作为批处理文件的一部分运行,该文件在完成时写入一些注册表值(因此您可以检查并且不运行它两次)或将某个文件写入已知位置。

是的,这样一来,如果你的用法在过去的某个时候自己运行vcredist你的第一次安装将是多余的,但我想它不会真的受到伤害并且不是那么大的交易。

除此之外(我意识到它不漂亮)我怀疑你必须检查2005 redist包中的每个文件是否存在(没有被删除或被删除),这是无论如何,redist设置应该做什么。