สิ่งนี้จะปรากฏขึ้นเมื่อคุณกด F1 ในกรอบโต้ตอบ Framework and References:
โดยค่าเริ่มต้นสำหรับโครงการใหม่กรอบงานเป้าหมายถูกกำหนดเป็น. NET Framework 4 IDE ไม่สนับสนุนการแก้ไขกรอบงานเป้าหมาย แต่คุณสามารถเปลี่ยนได้ด้วยตนเอง ในไฟล์โครงการ (.vcxproj) เฟรมเวิร์กเป้าหมายเริ่มต้นจะถูกแสดงด้วยองค์ประกอบคุณสมบัติ v4.0 เมื่อต้องการเปลี่ยนเฟรมเวิร์กเป้าหมายให้ยกเลิกการโหลดโครงการใช้เท็กซ์เอดิเตอร์เพื่อเปิดไฟล์โปรเจ็กต์จากนั้นเปลี่ยนค่าของอิลิเมนต์คุณสมบัติจาก v4.0 เป็นเวอร์ชันอื่นที่ติดตั้งบนเซิร์ฟเวอร์ของคุณ ตัวอย่างเช่นถ้าคุณระบุ v3.5 ซึ่งหมายถึง v3.5 .NET Framework, Visual Studio 2008 SP1 จะต้องติดตั้ง บันทึกและปิดไฟล์โหลดโครงการอีกครั้งและตรวจสอบว่าเฟรมเวิร์กเป้าหมายแสดงในหน้าคุณสมบัติ *
ไม่ถูกต้องอย่างมากในโครงการที่แปลงแล้วคุณจะต้องเพิ่ม<TargetFrameworkVersion>
องค์ประกอบเอง ใส่ใน PropertyGroup ที่มีข้อความ "Globals":
<PropertyGroup Label="Globals">
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<others...>
</PropertyGroup>
เรื่องราวแตกต่างกันเมื่อคุณใช้ VS2012 ขึ้นไปเวอร์ชันแรกของ VS ที่ได้รับการตั้งค่าชุดเครื่องมือแพลตฟอร์มในหน้าคุณสมบัติทั่วไป จากนั้นคุณต้องเลือก "v90" เพื่อรับบิลด์ที่เหมาะสมที่เป้าหมาย 3.5 อย่างไรก็ตามมันเงอะงะคุณต้องติดตั้ง VS เวอร์ชันกลางทั้งหมดลงบนเครื่องเพื่อให้การเลือกนั้นพร้อมใช้งาน
ทำไมคุณต้องติดตั้ง VS2008 ต้องการคำอธิบายด้วยตัวเอง ปัญหาหลักคือไลบรารีรันไทม์ C (msvcrt100.dll ขึ้นไป) มีรหัส. NET เพื่อรองรับการเรียกใช้โค้ดที่ได้รับการจัดการ รายละเอียดที่สำคัญคือโมดูลเริ่มต้นที่ทำให้มั่นใจได้ว่า CRT จะเริ่มต้นได้อย่างถูกต้องในโปรแกรมที่ใช้รหัส C ++ / CLI รหัสนั้นมักจะเป็นเป้าหมายของ. NET 4 และเนื่องจากเป็นการยากใน msvcrt100.dll (และสูงกว่า) คุณจะต้องพึ่งพาฮาร์ดร็อคในรันไทม์ v4.0.30319 คุณสามารถมีการอ้างอิง v2.0.50727 ที่แท้จริงได้เฉพาะเมื่อคุณใช้รันไทม์ C เก่าคือ msvcrt90.dll คุณสามารถมั่นใจได้ว่าคุณมีการพึ่งพา msvcrt90.dll เมื่อคุณใช้ #include ไฟล์ของ VS2008 ของคอมไพเลอร์
ความจริงที่แย่มากมันจำเป็นต้องย้ายไปที่. NET 4 เร็ว ๆ นี้คุณจะต้องต่อสู้กับปัญหาการสร้างเช่นนี้ถ้าคุณไม่ทำ มีอุปสรรคในทางปฏิบัติน้อยมากที่ NET 4 สามารถใช้ได้อย่างกว้างขวางฟรีกับทุกเป้าหมายที่คุณคาดคิด การเอาชนะ FUD ที่เกี่ยวข้องกับการย้ายไปยังเวอร์ชันรันไทม์ที่สูงกว่านั้นเป็นเรื่องจริงเท่านั้น ไม่มีเหตุผลสำหรับความกลัวและความสงสัยมันมีเสถียรภาพ