關鍵詞:visual studio 2022使用全版本平台工具集;vs2022使用vc60、vc++6.0工具集;vs2022使用全部舊平台工具集
優點:用v60平台工具集編譯出來的exe文件可以無依賴的運行在Windows全版本系統(包括win95/win98)
可以在vs2022上編譯舊的vs的項目。
注意事項:
1:切換平台工具集之后, 它需要一點時間重新掃描和組織項目, 左下角顯示就緒的時候就可以開始嘗試編譯了.
2:切換舊平台工具集是完全地切換了編譯器、鏈接器、SDK, 所以你必須要符合原先的代碼, 換句話說, vs2022只是為你提供了先進舒適的編碼體驗, 代碼還是要按照舊的平台工具集來寫.
例如用 v60 的時候, 就不能用中文命名變量, cpp文件也要是ansi編碼的,更不能使用c++11等新的標准,因為 VC++6.0 只支持 ANSI 編碼的源文件。
參考資料:
在 VS2017 使用所有舊版本的平台工具集 https://www.pianshen.com/article/3314342477/
vs2017支持所有版本VC https://www.pianshen.com/article/4304980854/
在vs2017上編譯cad2008版arx程序.Daffodil for Visual Studio https://blog.csdn.net/auguster110/article/details/125604651
Daffodil.enu.msi 文件,(來源於網絡)
鏈接:https://pan.baidu.com/s/1MRelU0jPZ7waWUHevl0gXw
提取碼:33xf
效果:


本文章教你只安裝vs2022的情況下,不安裝vs2019、vs2017、vs2015、vs2010、vs2008、vs2005、vs2003(.net 8)、2002(.net)、vc6.0,就能使用他們的平台工具集。(2013需要自己上網上找平台工具集壓縮包,我沒找到,就只好又另外安裝了vs2013)
1:安裝vs2022

單個組件那里

這樣就免去安裝vs2019、2017、2015使用他們的平台工具集。
2:參考上面的兩篇參考資料,加上2010以及以前的平台工具集。
安裝好daffodil之后vs2022就能選擇其他平台工具集(只是列表可選),但是要想成功編譯就要安裝其他的平台工具集
我實際操作時,安裝daffodil后並沒有安裝vs2010等其他工具集,而是下載參考文章原作者的文件壓縮包,解壓后 打上注冊表文件就弄好了。(說白了,跟安裝也差不多,只不過肯定比下載微軟的原始安裝包方便的多)
不過,我壓縮包文件夾是參照微軟安裝原版的文件夾命的名字,放在c盤,注冊表也改成了相應的位置。
弄好后,從v80到v2022的64位和32位就都可以用了。
但是v60到v71的32位,由於daffodil版本太老,編譯存在錯誤。見步驟3
3: error MSB4062: 未能從程序集 C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\v60\Daffodil.CPPTasks.Win32.v60.dll 加載任務“CLA”。Could not load file or assembly 'file:///C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\v60\Daffodil.CPPTasks.Win32.v60.dll' or one of its dependencies. 試圖加載格式不正確的程序。 請確認
由於Daffodil網址倒閉了,作者提供的版本比較低。
https://github.com/georgeto/Daffodil

從git上下載源碼,用vs2022移植一下項目(新建c#項目,net4.8版本,類庫,然后復制代碼,添加依賴,出錯就百度搜解決方案) 必須得是用vs2022編譯項目
然后編譯好的dll文件放到
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\v60
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\v70
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Platforms\Win32\PlatformToolsets\v71
文件夾下

共計三個dll文件。
然后就可以使用了。
https://github.com/fgfxf/Daffodil/releases/tag/20220119
這里有編譯好的三個dll文件,如存在錯誤,請自行編譯。
如有其他錯誤,請百度解決 或 聯系上面參考文章的原作者。
