最新移植了一個Linux程序到Windows,由於使用的Botan庫最低要求 vc 2015 才能編譯,所以沒多想,整個程序也只能用vc 2015。
在開發機上一切都正常,程序編譯執行都非常順利,結果沒有想到的事發生了。程序最終是要在一臺windows 2008 R2服務器上運行,用visual studio installer打包的安裝包在安裝時報安裝包有問題,直接放上執行文件說是缺少api-ms-win-crt-string-|1-1-0.dll。
以爲是缺少vcredist,就安裝了一下vc 2015的vcredist,結果沒有任何用處。
查找到這篇文章《api-ms-win-crt-string-|1-1-0.dll and others missing from computer》,說得比較靠譜,需要一個什麼 Update for Universal C Runtime in Windows
於是就去下載了這個Windows6.1-KB2999226-x64.msu,跑windows 2008 R2上一安裝,直接說這個更新不適用於本系統。
仔細看了一下這個更新的說明
這個更新支持Windows Server 2008 R2 Service Pack 1。結果就是一頓操作猛如虎,重啓N次把Service Pack 1打上,再裝那個KB2999226,Ok順利裝上。
再運行我自己的程序,正常了。
微軟的東西怎麼就這麼麻煩呢?
後來又看了一下Visual Studio 2015的最低要求:
這貨的確只支持 Windows Server 2008 R2 SP1。
搞出這麼多商業版本,實在是害人不淺啊,我花在安裝上的時間都快要超過開發了。