Pendahuluan
Masalah pustaka kelas portabel mungkin terjadi setelah Anda menginstal Microsoft Visual Studio 2012 Update 2. Artikel ini menjelaskan tentang masalah tersebut dan memberikan penyelesaian.
Masalah 1
Gejala
Ketika Anda menggunakan sumber daya untuk membangun proyek portabel perpustakaan kelas setelah Anda menginstal Visual Studio 2012 pembaruan 2, Anda mungkin menerima pesan galat berikut:
'System.Type' tidak berisi definisi untuk 'Rakitan' dan tidak ada metode ekstensi 'Rakitan' menerima argumen pertama dari ketik 'System.Type' dapat ditemukan (Anda hilang menggunakan petunjuk atau rakitan referensi?)
Catatan Anda menerima galat ini bila Anda menggunakan Microsoft Visual C#.
'Rakitan' bukan anggota 'System.Type'
Catatan Anda menerima galat ini bila Anda menggunakan Microsoft Visual Basic.
Masalah ini terjadi ketika salah satu dari platform berikut yang ditargetkan proyek Anda:
-
Microsoft .NET Framework 4,5 dan .NET untuk aplikasi toko Windows
-
.NET Framework 4,5 dan telepon Windows 8
-
.NET Framework 4,5, .NET untuk aplikasi toko Windows, dan Windows Phone 8
Pemecahan masalah
Untuk mengatasi masalah ini, Perbaiki kode yang dihasilkan designer dari berkas sumber daya. Untuk melakukannya, klik dua kali pesan kesalahan, dan kemudian ikuti langkah-langkah berikut:
Untuk Visual C#
-
Tambahkan berikut menggunakan perintah:
using System.Reflection;
-
Temukan kode berikut:
typeof(Resource1).Assembly
Ganti kode tersebut dengan kode berikut:
typeof(Resource1).GetTypeInfo().Assembly
Kode berikut ini adalah contoh yang mengalami masalah ini:
/// <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
-
Tambahkan berikut menggunakan perintah:
Imports System.Reflection;
-
Temukan kode berikut:
GetType(Resource1).Assembly
Ganti kode tersebut dengan kode berikut:
GetType(Resource1).GetTypeInfo().Assembly
Kode berikut ini adalah contoh yang mengalami masalah ini:
'''<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
Masalah 2
Gejala
Anda tidak dapat menggunakan sumber daya untuk membangun proyek portabel perpustakaan kelas setelah Anda menginstal Visual Studio 2012 pembaruan 2. Selain itu, Anda mungkin menerima salah satu dari banyak pesan kesalahan yang berbeda. Misalnya, Anda mungkin menerima salah satu pesan galat berikut:
Ketik 'System.Net.HttpStatusCode' ditetapkan di rakitan yang tidak dirujuk. Anda harus menambahkan referensi ke perkumpulan ' System.Net, versi = 2.0.5.0, budaya = neutral, PublicKeyToken = 7cec85d7bea7798e, Retargetable = Yes'.
Implisit tidak dapat mengubah jenis 'System.Net.HttpStatusCode' untuk ' System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\. NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll]'
Catatan masalah ini terjadi ketika salah satu dari platform berikut yang ditargetkan proyek Anda:
-
.NET Framework 4,5 dan Windows Phone 8
-
.NET Framework 4,5, .NET untuk aplikasi toko Windows, dan Windows Phone 8
Penyebab
Masalah ini terjadi karena Visual Studio 2012 pemutakhiran 2 telah terpasang setelah telepon perangkat lunak pengembangan Kit (SDK) Windows 8.0 diinstal. Oleh karena itu, berkas berikut ini telah dihapus:
-
%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
Pemecahan masalah
Untuk mengatasi masalah ini, jalankan program perbaikan Visual Studio 2012. Untuk melakukannya, ikuti langkah-langkah berikut:
-
Klik Mulai, klik Panel Kontrol, klik Program, lalu klik Program dan Fitur.
-
Klik kanan versi Visual Studio 2012 yang telah Anda instal, dan kemudian klik Ubah.
-
Klik Perbaiki ketika Wisaya Visual Studio 2012 penataan terbuka.
Catatan Jika Anda mengatur lingkungan pengembang baru, untuk menghindari masalah ini, Anda harus menginstal Visual Studio 2012 Update 2 sebelum menginstal Windows Phone 8.0 SDK.
Status
Microsoft telah memastikan bahwa ini merupakan masalah di dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".