Inleiding
Draagbare Class Libraries problemen kunnen optreden na installatie van Microsoft Visual Studio 2012 2. In dit artikel wordt beschreven, deze problemen en hun oplossingen.
Probleem 1
Symptomen
Wanneer u een draagbare Class Library-project maken na de installatie van Visual Studio 2012 Update 2bronnen, wordt de volgende foutberichten weergegeven:
'System.Type' bevat geen definitie van een 'Assemblage' en geen extensie methode accepteert een eerste argument van het type 'System.Type' Assembly is gevonden (ontbreekt er een met richtlijn of van een assembly-verwijzing?)
Opmerking U ontvangt dit foutbericht wanneer u Microsoft Visual C#.
'Assembly' is geen lid van 'System.Type'
Opmerking U ontvangt dit foutbericht wanneer u Microsoft Visual Basic gebruiken.
Dit probleem treedt op wanneer een van de volgende platforms is gericht in uw project:
-
Microsoft .NET Framework 4.5 en de .NET voor Windows Store apps
-
De .NET Framework 4.5 en Windows Phone 8
-
Het .NET Framework 4.5, voor de Windows Store apps .NET en Windows Phone 8
Tijdelijke oplossing
U kunt dit probleem omzeilen, de ontwerper gegenereerde code van het bronbestand te corrigeren. Dubbelklik op het foutbericht hiervoor, en vervolgens als volgt te werk:
Voor Visual C#
-
Voeg de volgende instructie:
using System.Reflection;
-
Zoek de volgende code:
typeof(Resource1).Assembly
Die code vervangen door de volgende code:
typeof(Resource1).GetTypeInfo().Assembly
De volgende code is een voorbeeld van dit probleem:
/// <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
-
Voeg de volgende instructie:
Imports System.Reflection;
-
Zoek de volgende code:
GetType(Resource1).Assembly
Die code vervangen door de volgende code:
GetType(Resource1).GetTypeInfo().Assembly
De volgende code is een voorbeeld van dit probleem:
'''<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
Probleem 2
Symptomen
U resources niet gebruiken op een draagbare Class Library-project maken na de installatie van Visual Studio 2012 Update 2. Bovendien wordt een van de verschillende foutberichten worden weergegeven. Mogelijk wordt een van de volgende foutberichten weergegeven:
Het type 'System.Net.HttpStatusCode' is gedefinieerd in een assembly waarnaar niet wordt verwezen. Moet u een verwijzing naar een assembly toevoegen ' System.Net, versie = 2.0.5.0, Culture = neutral, PublicKeyToken = 7cec85d7bea7798e, Retargetable = Yes'.
Type 'System.Net.HttpStatusCode' niet impliciet converteren naar ' System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\. NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll] "
Opmerking dat dit probleem doet zich voor wanneer een van de volgende platforms is gericht in uw project:
-
De .NET Framework 4.5 en Windows Phone 8
-
Het .NET Framework 4.5, voor de Windows Store apps .NET en Windows Phone 8
Oorzaak
Dit probleem treedt op omdat Visual Studio 2012 Update 2 is geïnstalleerd na de Windows Phone Software Development Kit (SDK) 8.0 is geïnstalleerd. Daarom worden de volgende bestanden zijn verwijderd:
-
%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
Tijdelijke oplossing
Dit probleem oplossen door het programma Visual Studio 2012 reparatie worden uitgevoerd. Ga hiervoor als volgt te werk:
-
Klik op Start, klik op Configuratiescherm, klik op Programma's en klik vervolgens op Programma's en onderdelen.
-
Klik met de rechtermuisknop op de versie van Visual Studio 2012 die u hebt geïnstalleerd en klik vervolgens op wijzigen.
-
Wanneer de wizard Setup van Visual Studio 2012 wordt geopend, klikt u op herstellen .
Opmerking Als u een nieuwe omgeving voor ontwikkelaars om te voorkomen dat dit probleem, moet u Visual Studio 2012 Update 2 voordat u de SDK van Windows Phone 8.0 installeert.
Status
Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.