2013-04-21 68 views
5

我需要安裝Microsoft Visual C++ 2008運行時(x86),但是當我搜索谷歌並查看了此問題後,我才知道Microsoft提供了4個不同的版本微軟的Visual C++ 2008運行時的其中Microsoft Visual C++ 2008運行時需要這四個版本

  1. 微軟的Visual C++ 2008可再發行組件包(x86) 發表日期:2007年11月29日

  2. 微軟的Visual C++ 2008 SP1可再發行組件包(x86) 出版日期: 9/16/2008

  3. 的Microsoft Visual C++ 2008 Service Pack 1的再發行組件包ATL安全更新 發表日期:9/29/2010

  4. 的Microsoft Visual C++ 2008 Service Pack 1的再發行組件包MFC的安全更新 發佈日期:6/7/2011

現在該二進制我應該下載,如果我下載我的第四人應該能夠運行,其使用1日運行時生成的應用程序(上面提到的: - 1.微軟的Visual C++ 2008可再發行組件包(x86 ) - 發佈日期:11/29/2007)。

或者我應該按順序逐一安裝它們,你能指導我嗎?

僅供參考:1.在發佈之前我已經搜索過stackoverflow,但沒有找到答案。 2.我在谷歌搜索這個詞: - VC++ 2008

回答

1

我會按時間順序推薦他們所有人。 一些寫得不好的安裝程序(yup .. InstallShield)使用二進制自定義操作,並且這些操作可能在清單中具有硬編碼的依賴關係。 重量輕,彼此不衝突。

+1

我尊重所有回答的人,但恐怕我已經對@andred的建議採取行動,並且對我有效。在面對許多錯誤和錯誤消息後,終於可以運行PHP 5.2和PHP 5.3兩個版本以及兩個版本的Apache和兩個版本的mysql,因爲存在與VC++ 6和VC++ 9相關的問題,在VC++中編譯了舊的二進制文件6和新的在VC++ 9中仍然存在(上次我檢查時)apache.org不會在PHP.net使用的相同版本中編譯apache,因此非常感謝GOD和所有人的支持。順便說一句,我使用Windows .. – Sam 2013-04-22 10:12:58

1

出版1.微軟的Visual C++ 2008可再發行組件包(x86)日期:2007年11月29日

這是你需要使用Visual Studio 2008編譯的32位(x86)應用程序的一個。

公佈2.微軟的Visual C++ 2008 SP1可再發行組件包(x86)日期:9/16/2008

同上,EXC它包含Service Pack 1(SP1)的更新。如果使用帶有Service Pack 1的Visual Studio 2008編譯應用程序,請使用此代替上面的代碼。

Visual Studio和Service Pack級別的版本可以從IDE中的幫助 - >關於內部進行檢查。

3.微軟的Visual C++ 2008 Service Pack 1的再發行組件包ATL安全更新發布日期:9/29/2010

4。發佈的Microsoft Visual C++ 2008 Service Pack 1的再發行組件包MFC的安全更新時間:2011/6/7

我不能從名字告訴這兩個是否只是可選更新上述再發行組件包,或者它們是否包括完整的可再發行組件包可選更新。

無論哪種方式,如果您的應用程序使用ATL或MFC編寫,只需要它們。


如果這一切都太混亂,注意,你甚至不需要分發您的應用程序時使用這些可再發行組件安裝的。您可以將所需的運行時DLL放在與您的可執行文件相同的文件夾中,它會運行得很好。

將所需庫的正確版本作爲Visual Studio安裝的一部分複製到您的計算機。您可以在以下目錄中找到它們:

<Program Files folder>\Microsoft Visual Studio 9.0\VC\redist\x86 
+0

是「*可以將所需的運行時DLL放在與您的可執行文件相同的文件夾*」穩定和*支持*?如果是這樣,爲什麼開發人員似乎從來沒有這樣做? – Pacerier 2017-02-14 13:09:18

+0

是的,它是穩定和支持。自2000年以來,這可能是之前推薦的做法。我不知道你在想什麼開發者。我看到很多人都這麼做。在macOS術語中,應用程序的目錄是應用程序包。它的所有依賴應該放在應用程序目錄中。 *沒有*屬於系統文件夾 - 這些是系統文件。 @pacerier – 2017-02-14 14:20:16

+0

開始使這個建議變得複雜的唯一的事情是通用CRT,與VS 2015一起提供,它實際上*是一個系統組件,並且由Windows 10中的Windows Update提供服務。但是,這個答案由幾個年份。並且通用CRT仍支持應用程序本地部署,如果您需要支持底層操作系統並且不想依賴已安裝的更新包(或者必須自己提供更新安裝程序),那麼這可能是個好主意)。 – 2017-02-14 14:22:10

2

直觀的選擇是正確的,安裝最新版本。這些安裝程序還部署了一個發佈者策略文件,用於將要求將舊版本升級到新版本的程序重定向。這是他們獲得關鍵錯誤修復或安全更新激活的基本機制。或者說得更直白些,發佈者策略是針對DLL地獄對策的反制措施。他們工作得很好,我從來沒有聽說過任何人抱怨過這些DLL的版本問題。更典型的DLL Hell問題是用舊版本覆蓋DLL,這不會發生在這些並排的DLL上。當你的程序要求一個新版本(查看.manifest文件)時,部署一箇舊版本是失敗的。

+0

但不是所有東西都向後兼容嗎?如果程序假定舊版本,但是你有一個不兼容的新版本,那麼不會有問題的機會嗎? – Pacerier 2017-02-14 02:11:39

+0

「**完全**向後兼容」我的意思是。 – Pacerier 2017-02-14 12:54:21

+0

微軟是一個有趣的公司。如果更新中斷了您的程序,那麼他們將爲您提供解決方法或修補程序。不收費,你會收到你的支持電話費。我親自利用了那兩次。不適用於C/C++庫btw。 – 2017-02-14 13:08:53

相關問題