我有一个很旧很旧的VC++应用,我们已经移植到VS2005上了。我们的现有用户需要获取VC++2005 vcredist_x86.exe,所以我的应用程序将DLL放在他们的机器上并运行它。我检查了HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\Installations\下的一个注册表项,它是x86_Microsoft.VC80.MFC blah blah 8.0.50727.762 blah blah...但是..。这似乎在Vista上不存在。为了确保vcredist运行到完成,我不需要再次运行它,应该检查正确的条目是什么?
谢谢!
发布于 2009-02-24 19:15:45
虽然您可以在users windir中的winsxs文件夹中查找正确的文件夹和文件,但我从未找到任何关于这方面的明确信息。
我已经让我们的应用程序的安装程序在安装时悄悄地运行它,如果它已经在那里,这不会造成任何问题。
发布于 2009-02-24 19:24:49
我的应用程序将vcredist_x86.exe放在他们的机器上并运行它。
这是一种非常不规范的方式。
通常,并排的软件包会自动添加到“检测到的依赖项”下的安装程序对象的依赖项中。
发布于 2009-02-24 20:18:52
保持简单:只需将redist设置作为批处理文件的一部分运行,该批处理文件将在完成时写入一些注册表值(这样您就可以检查它而不会运行两次),或者将一些文件写入到某个已知位置。
没错,如果你的用户在过去的某个时候自己运行vcredist,那么你的第一次安装将是多余的,但我猜这不会真的有什么坏处,也不是什么大问题。
除此之外(我意识到这不是很好),我怀疑您必须检查2005 redist包中的每个文件是否都在那里(没有被意外删除或损坏),这几乎是redist安装程序应该做的。
https://stackoverflow.com/questions/583122
复制相似问题