Introduksjon
Bærbar klassebiblioteker problemer kan oppstå når du installerer Microsoft Visual Studio 2012 2. Denne artikkelen beskriver disse problemer og deres løsninger.
Problem 1
Symptomer
Når du bruker ressursene til å bygge en bærbar Klassebibliotek prosjektet etter at du installerer Visual Studio 2012 2, kan du få følgende feilmeldinger:
'System.Type' ikke inneholder en definisjon for "Assembly" og finner ingen utvidelse metode samlingen godtar en første argument av typen 'System.Type' (mangler du en ved hjelp av direktivet eller en assembly-referanse?)
Obs! Du får denne feilen når du bruker Microsoft Visual C#.
"Assembly" er ikke medlem av 'System.Type'
Obs! Du får denne feilen når du bruker Microsoft Visual Basic.
Dette problemet oppstår når ett av følgende plattformer er rettet i prosjektet:
-
Microsoft .NET Framework 4.5 og .NET for Windows Store programmer
-
.NET Framework 4.5 og Windows Phone-8
-
.NET Framework 4.5 .NET for Windows Store programmer og Windows Phone-8
Løsningen
Hvis du vil omgå dette problemet, rette koden designer-generert av ressurser-filen. Hvis du vil gjøre dette, dobbeltklikker du feilmeldingen, og deretter følger du denne fremgangsmåten:
For Visual C#
-
Legg til følgende ved hjelp av direktivet:
using System.Reflection;
-
Finn følgende kode:
typeof(Resource1).Assembly
Du kan erstatte koden med følgende kode:
typeof(Resource1).GetTypeInfo().Assembly
Følgende kode er et eksempel som har dette problemet:
/// <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
-
Legg til følgende ved hjelp av direktivet:
Imports System.Reflection;
-
Finn følgende kode:
GetType(Resource1).Assembly
Du kan erstatte koden med følgende kode:
GetType(Resource1).GetTypeInfo().Assembly
Følgende kode er et eksempel som har dette problemet:
'''<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
Problem 2
Symptomer
Du kan ikke bruke ressursene til å bygge en bærbar Klassebibliotek prosjektet etter at du installerer Visual Studio 2012 2. I tillegg kan du få en av mange forskjellige feilmeldinger. For eksempel kan du få en av følgende feilmeldinger:
Type 'System.Net.HttpStatusCode' er definert i en samling som ikke det refereres til. Du må legge til en referanse til samlingen ' System.Net, versjon = 2.0.5.0, Culture = nøytral, PublicKeyToken = 7cec85d7bea7798e, Retargetable = Yes.
Kan ikke konvertere implisitt type 'System.Net.HttpStatusCode' til ' System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\. NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll] "
Vær oppmerksom på dette problemet oppstår når ett av følgende plattformer er rettet i prosjektet:
-
.NET Framework 4.5 og Windows Phone-8
-
.NET Framework 4.5 .NET for Windows Store programmer og Windows Phone-8
Årsak
Dette problemet oppstår fordi Visual Studio 2012 oppdateringen 2 ble installert etter at Windows Phone Software Development Kit (SDK) 8.0 ble installert. Følgende filer ble derfor slettet:
-
%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
Løsningen
Hvis du vil løse dette problemet, kan du kjøre programmet Visual Studio 2012 reparasjon. Følg disse trinnene:
-
Klikk Start, klikk Kontrollpanel, programmerog klikk deretter programmer og funksjoner.
-
Høyreklikk versjonen av Visual Studio 2012 du har installert, og klikk deretter Endre.
-
Når du åpner Visual Studio 2012 installasjonsveiviseren, klikker du Reparer .
Obs! Hvis du setter opp en ny utviklermiljø, for å unngå dette problemet, bør du installere Visual Studio 2012 oppdateringen 2 før du installerer Windows Phone 8.0 SDK.
Status
Microsoft har bekreftet at dette er et problem i Microsoft-produktene som er oppført i delen "Gjelder for".