ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

บทนำ

ไลบรารีคลาสแบบพกพาปัญหาอาจเกิดขึ้นหลังจากที่คุณติดตั้งMicrosoft Visual Studio 2012 อัพเดต 2 บทความนี้อธิบายปัญหาเหล่านั้นและวิธีแก้ไขปัญหาของพวกเขา

ปัญหาที่ 1

อาการ

เมื่อคุณใช้ทรัพยากรเพื่อสร้างไลบรารีคลาสแบบพกพาโครงการหลังจากที่คุณติดตั้งVisual Studio 2012 อัพเดต 2คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

'System.type ' ที่ซีเรียลไลซ์ไม่ประกอบด้วยคำนิยามสำหรับ 'แอสเซมบลี' และไม่สามารถพบวิธีการไม่มีนามสกุล 'แอสเซมบลี' ยอมรับเป็นอาร์กิวเมนต์แรกของชนิด 'system.type ' ที่ซีเรียลไลซ์ (คุณหายดีโดยใช้ไดเรกทีฟหรือการอ้างอิงแอสเซมบลีหรือไม่)

หมายเหตุ  คุณได้รับข้อผิดพลาดนี้เมื่อคุณใช้ Microsoft Visual C#

'แอสเซมบลี' ไม่ใช่สมาชิกของ 'system.type 'ที่ซีเรียลไลซ์

หมายเหตุ  คุณได้รับข้อผิดพลาดนี้เมื่อคุณใช้ Microsoft Visual Basic

ปัญหานี้เกิดขึ้นเมื่อแพลตฟอร์มแบบต่อไปนี้อย่างใดอย่างหนึ่งที่เป็นเป้าหมายในโครงการของคุณ:

  • Microsoft .NET Framework 4.5 และ.NET สำหรับ apps ร้านค้า Windows

  • .NET Framework 4.5 และ Windows Phone 8

  • .NET Framework 4.5, .NET สำหรับ apps ร้านค้า Windows และ Windows Phone 8


วิธีแก้ปัญหา

เมื่อต้องการหลีกเลี่ยงปัญหานี้ แก้ไขรหัสสร้างขึ้นโดยตัวออกแบบของแฟ้มทรัพยากร เมื่อต้องการทำเช่นนี้ คลิกสองครั้งข้อความแสดงข้อผิดพลาด และจากนั้น ทำตามขั้นตอนเหล่านี้:

สำหรับ Visual C#

  1. เพิ่มต่อไปนี้โดยใช้ไดเรกทีฟ:

    using System.Reflection;
  2. ค้นหารหัสต่อไปนี้:

    typeof(Resource1).Assembly

    แทนที่รหัส ด้วยรหัสต่อไปนี้:

    typeof(Resource1).GetTypeInfo().Assembly

รหัสต่อไปนี้เป็นตัวอย่างที่มีปัญหานี้:

        /// <summary> 
/// Returns the cached ResourceManager instance used by this class.

/// </summary>

[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]internal static global::System.Resources.ResourceManager ResourceManager { get {

if (object.ReferenceEquals(resourceMan, null)) {

global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PortableClassLibrary2.Resource1", typeof(Resource1).Assembly);

resourceMan = temp;

}

return resourceMan;
}
}


Visual Basic

  1. เพิ่มต่อไปนี้โดยใช้ไดเรกทีฟ:

    Imports System.Reflection;
  2. ค้นหารหัสต่อไปนี้:

    GetType(Resource1).Assembly

    แทนที่รหัส ด้วยรหัสต่อไปนี้:

    GetType(Resource1).GetTypeInfo().Assembly

รหัสต่อไปนี้เป็นตัวอย่างที่มีปัญหานี้:

        '''<summary>
''' Returns the cached ResourceManager instance used by this class.

'''</summary>

<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _

Friend Shared ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager

Get

If Object.ReferenceEquals(resourceMan, Nothing) Then

Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("PortableClassLibrary1.Resource1", GetType(Resource1).Assembly)

resourceMan = temp

End If

Return resourceMan

End Get

End Property


ปัญหาที่ 2

อาการ

คุณไม่สามารถใช้ทรัพยากรเพื่อสร้างไลบรารีคลาสแบบพกพาโครงการหลังจากที่คุณติดตั้งVisual Studio 2012 อัพเดต 2 นอกจากนี้ คุณอาจได้รับข้อความแสดงข้อผิดพลาดที่แตกต่างกันมาก ตัวอย่างเช่น คุณอาจได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

มีกำหนดชนิด 'System.Net.HttpStatusCode' ในแอสเซมบลีที่ถูกอ้างอิง คุณต้องเพิ่มการอ้างอิงถึงแอสเซมบลี ' System.Net รุ่น = 2.0.5.0 วัฒนธรรม =ปานกลาง PublicKeyToken = 7cec85d7bea7798e, Retargetable =ใช่


ไม่สามารถนัยแปลงชนิด 'System.Net.HttpStatusCode' เป็น ' System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\ ได้ NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll]'


หมายเหตุปัญหานี้เกิดขึ้นเมื่อแพลตฟอร์มแบบต่อไปนี้อย่างใดอย่างหนึ่งที่เป็นเป้าหมายในโครงการของคุณ:

  • .NET Framework 4.5 และ Windows Phone 8

  • .NET Framework 4.5, .NET สำหรับ apps ร้านค้า Windows และ Windows Phone 8


สาเหตุ

ปัญหานี้เกิดขึ้นเนื่องจาก Visual Studio 2012 อัพเดต 2 ถูกติดตั้งหลังจากที่มีการติดตั้ง Windows Phone ซอฟต์แวร์พัฒนา Kit (SDK) 8.0 ดังนั้น จึง ถูกลบแฟ้มต่อไปนี้:

  • %programfiles%\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile49\System.Net.dll

  • %programfiles%\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile49\System.ServiceModel.dll

  • %programfiles%\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile78\System.Net.dll

  • %programfiles%\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile78\System.ServiceModel.dll


วิธีแก้ปัญหา

เมื่อต้องการแก้ไขปัญหานี้ รันโปรแกรมซ่อมแซม 2012 Studio แสดงผล เมื่อต้องการทำเช่นนี้ ให้ทำตามขั้นตอนเหล่านี้

  1. คลิกเริ่ม, 'แผงควบคุม'คลิก คลิกโปรแกรมและคลิกโปรแกรมและคุณลักษณะ'

  2. คลิกขวาที่รุ่นของ Visual Studio 2012 ที่คุณได้ติดตั้ง และจากนั้น คลิกเปลี่ยนแปลง

  3. คลิกซ่อมแซมเมื่อเปิดวิซาร์ดการตั้ง 2012 Studio ที่มองเห็น

หมายเหตุ ถ้าคุณตั้งค่าสภาพแวดล้อมการพัฒนาใหม่ เพื่อหลีกเลี่ยงปัญหานี้ คุณควรติดตั้ง Visual Studio 2012 อัพเดต 2 ก่อนที่คุณติดตั้ง Windows Phone 8.0 SDK

สถานะ

Microsoft ยืนยันว่านี่เป็นปัญหาในผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน "นำไปใช้กับ"

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

ขอบคุณสำหรับคำติชมของคุณ!

×