在Visual Studio 2008 SP1中,是否可以將C++ COM項目定位到vcredist 2008而不是vcredist 2008 SP1?使用vcredist的特定版本?
我們的客戶有vcredist 2008年安裝,我們不想強迫他們安裝vcredist 2008 SP1。 (十萬臺電腦!)
在Visual Studio 2008 SP1中,是否可以將C++ COM項目定位到vcredist 2008而不是vcredist 2008 SP1?使用vcredist的特定版本?
我們的客戶有vcredist 2008年安裝,我們不想強迫他們安裝vcredist 2008 SP1。 (十萬臺電腦!)
VS2008實際上,在默認情況下,繼續針對VS9 RTM REDIST。 依賴檢查程序中發生的情況是,當安裝VS9 SP1時,還會安裝一個策略文件,該文件將重定向嘗試將RTM可再發行組件加載到SP1可再發行組件。
爲了獲得VS9 SP1實際需要,你需要下面的宏添加到您的項目設置SP1運行時間或編譯頭:
#define _BIND_TO_CURRENT_CRT_VERSION 1
我想建議1.所創建的清單已經看起來像目標SP1之前: assemblyIdentity> 但是,當我檢查依賴Walker它看起來仍然取決於9.0.30729.1(SP1)版本的文件? –
2009-06-05 09:38:35
+1給建議#3。這意味着C運行時將實際編譯到您的可執行文件中。這將使exe有點大,但會消除任何vcredist的需要。如果大小確實讓你擔心,你可以嘗試使用PGO將很少使用的代碼推送到exe的後端。 – eran 2009-06-07 09:04:02