วิธีแก้ปัญหาไม่สามารถใช้งาน VS2017 และ VS2019 พร้อมกันได้
ถ้าใครใช้งาน Visual Studio 2017 และกำลังจะลง Visual Studio 2019 คุณอาจจะกำลังเจอปัญหาว่าไม่สามารถเปิดโปรเจคเก่าๆ ใน Visual Studio 2019 ได้ เพราะมันจะขึ้นข้อความว่า Unload Project พร้อมกับ Error message ประมาณนี้ใน Output Panel (ขออภัยไม่ทันได้ cap รูปไว้)
VS 2019 The tools version “15.0” is unrecognized. Available tools versions are “14.0”, “2.0”, “3.5”, “4.0”
ถ้าคุณเจอ Error หน้าตาประมาณนี้ ยินดีด้วย บทความนี้อาจจะช่วยให้คุณแก้ปัญหาดังกล่าวได้ โดยทำตามขั้นตอนต่อไปนี้ได้เลยครับ
ตรวจสอบ version ของ msbuild
หลังจากที่เราติดตั้ง Visual Studio 2019 แล้ว ตามหลัก msbuild ของเราควรจะเป็น Version 16.1.xx.xxxxx ถ้าไม่ใช่เวอร์ชั่นประมาณนี้ แสดงว่าเครื่องของคุณยังอ่าน Global Assembly Cache (GAC) ของ msbuild ตัวเก่าอยู่
โดยวิธีการตรวจสอบก็ทำได้โดยเปิด Developer Command Prompt for VS 2019 และพิมพ์คำสั่งว่า msbuild /version
เพื่อดูเวอร์ชั่น
เคลียร์ GAC ของ Microsoft.Build
เมื่อพบว่าเครื่องของเรายังใช้ msbuild ตัวเก่า สิ่งที่ต้องทำก็คือ ทำการเคลียร์ Cache ด้วยคำสั่งต่อไปนี้
$ gacutil.exe /u "Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"$ gacutil.exe /u "Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"$ gacutil.exe /u "Microsoft.Build.Utilities.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"$ gacutil.exe /u "Microsoft.Build.Engine, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"$ gacutil.exe /u "Microsoft.Build.Tasks.Core, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
เมื่อรันจนครบ และลองตรวจสอบ version ด้วยคำสั่ง msbuild /version
อีกครั้ง จะพบว่ามันเป็นเวอร์ชั่น 16.1.xx.xxxxx เรียบร้อยแล้ว
ปล. ถ้าใครที่ลง VS2019 โดยไม่เคยติดตั้งเวอร์ชั่นที่ต่ำกว่า น่าจะไม่เจอปัญหานี้ เพราะว่ามันยังไม่มี GAC ของเวอร์ชั่น 15.x.xx.xxxxx ติดตั้งไว้นั้นเอง