2012-09-28 19 views
5

我的程序包含取決於MSVCP100.dll和MSVCR100.dll幾個dll文件,在Win7我的程序運行沒有任何問題,但是在Win8中未能找到這兩個動態鏈接庫。我注意到在Win8中沒有默認安裝VCRedist,所以顯然我需要安裝VCRedist來啓用我的程序。如何檢查我是否需要安裝VCRedist?

的問題是,我如何檢查是否安裝了VCRedist?

看起來我們可以通過註冊表[1][2]搜索做到這一點。然而,似乎有VCRedist(VC2012,2010,2008,2005 ...)的很多版本,所以我需要去通過所有這些註冊表項?

回答

2

如果你只是運行VCRedist的安裝程序(無論如何,它應該隨程序一起提供),它會爲你完成這項工作。遊戲「嘗試」以相同的方式安裝DirectX。

+0

這不是一個理想的情況(糟糕的UX),但它是最具防禦性的。 –

9

由於您的DLL取決於MSVCR100.dll,你會想「MSVCR」或「MSVCP」後找到VCRedist 2010年VC

數量是Visual Studio的內部版本X10 - http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Version_history列出了各種版本的值。

對於Visual Studio 2010,可以通過檢查32位應用程序/ DLL的HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x86和64位應用程序/ DLL的HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\VC\VCRedist\x64的「已安裝」值來檢測運行時是否已安裝。

對於Visual Studio 2010和以前的版本中,http://blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspx有方法,如果已安裝運行時檢測一個很好的解釋。

與Visual Studio 2012件事情已經改變,VCRedist鍵不再存在。相反,您可以查看reg key的值(對於32位應用程序)

+0

如果您嘗試在沒有Visual Studio的情況下檢入計算機,則這不適用 – XtianGIS