อาการ
คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้ในระหว่างกระบวนการคอมไพล์เมื่อคุณคอมไพล์ใหม่เหนือแอพลิเคชันเพื่อกำหนดเป้าหมาย Microsoft .NET Framework 4.5.2:
'{ชื่อ}' ไม่ใช่สมาชิกของ 'Windows'
ในข้อความนี้ ตัวยึด "{} " ชื่อเป็นข้อมูลรองของ namespace System.Windows เช่น "ฟอร์ม" หรือ "มาร์กอัป"
ตัวอย่างเช่น ข้อผิดพลาดอาจปรากฏขึ้นดังนี้:
'ฟอร์ม' ไม่ได้เป็นสมาชิกของ 'Windows'
การแก้ปัญหา
ปัญหานี้เกี่ยวข้องกับความขัดแย้งของ namespace "หน้าต่าง" .NET Framework 4.5.2 ซึ่งจะเกิดขึ้นในรหัสที่ใช้ Windows {ชื่อ} เพื่ออ้างอิงถึง System.Windows {ชื่อ}
เมื่อต้องการแก้ไขปัญหา เปลี่ยนรหัสให้ครบถ้วนรับรองคุณสมบัติ namespace หรือนำเข้า namespace แบบเต็ม และชนิดของการอ้างอิงตามชื่อของพวกเขาอย่างง่าย
ตัวอย่างเช่น รหัสต่อไปนี้จะทำให้เกิดข้อผิดพลาด:
Module Module1
Sub Main()
Windows.Forms.MessageBox.Show("Example")
End Sub
End Module
อย่างไรก็ตาม รหัสต่อไปนี้จะคอมไพล์เรียบร้อยแล้ว:
Imports System.Windows.Forms
Module Module1
Sub Main()
MessageBox.Show("Example")
End Sub
End Module
รหัสต่อไปนี้จะยังคอมไพล์เรียบร้อยแล้ว:
Module Module1
Sub Main()
System.Windows.Forms.MessageBox.Show("Example")
End Sub
End Module