Einführung
Portable Klassenbibliotheken Probleme können auftreten, nachdem Sie Microsoft Visual Studio 2012 Update 2installiert. Dieser Artikel beschreibt die Probleme und deren Lösung.
Problem 1
Problembeschreibung
Wenn Sie Ressourcen verwenden, nach der Installation von Visual Studio 2012 2Portable Klassenbibliothek-Projekt erstellen, erhalten Sie die folgenden Fehlermeldungen angezeigt:
'System.Type' enthält eine Definition für 'Assembly' und 'Assembly' Erstes Argument vom Typ System.Type' akzeptiert keine Erweiterungsmethode gefunden (fehlt eine Direktive oder ein Assemblyverweis?)
Hinweis Dieser Fehler wird angezeigt, wenn Sie Microsoft Visual C# verwenden.
"Assembly" ist kein Member von 'System.Type'
Hinweis Dieser Fehler wird angezeigt, wenn Sie Microsoft Visual Basic verwenden.
Dieses Problem tritt auf, wenn eine der folgenden Plattformen im Projekt ausgerichtet ist:
-
Microsoft.NET Framework 4.5 und .NET für Windows Store-apps
-
.NET Framework 4.5 und Windows Phone 8
-
.NET Framework 4.5, .NET für Windows Store-apps und Windows Phone 8
PROBLEMUMGEHUNG
Beheben Sie um dieses Problem zu umgehen, den vom Designer generierten Code der Ressourcendatei. Hierzu Doppelklicken Sie auf die Fehlermeldung, und Sie folgendermaßen:
Für Visual C#
-
Fügen Sie die folgende Richtlinie:
using System.Reflection;
-
Suchen Sie den folgenden Code:
typeof(Resource1).Assembly
Ersetzen Sie diesen Code durch folgenden Code:
typeof(Resource1).GetTypeInfo().Assembly
Der folgende Code ist ein Beispiel, das dieses Problem:
/// <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
-
Fügen Sie die folgende Richtlinie:
Imports System.Reflection;
-
Suchen Sie den folgenden Code:
GetType(Resource1).Assembly
Ersetzen Sie diesen Code durch folgenden Code:
GetType(Resource1).GetTypeInfo().Assembly
Der folgende Code ist ein Beispiel, das dieses Problem:
'''<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
Problembeschreibung
Ressourcen können nach der Installation von Visual Studio 2012 2Portable Klassenbibliothek-Projekt erstellen. Darüber hinaus erhalten Sie eine Vielzahl von Fehlermeldungen. Beispielsweise erhalten Sie eine der folgenden Fehlermeldungen angezeigt:
Typ 'System.Net.HttpStatusCode' ist in einer Assembly definiert, auf die nicht verwiesen wird. Fügen Sie einen Verweis auf Assembly "System.Net, Version = 2.0.5.0, Culture = Neutral, PublicKeyToken = 7cec85d7bea7798e Retargetable = Yes.
Typ 'System.Net.HttpStatusCode' kann nicht implizit in konvertieren ' System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\. NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll] "
Hinweis: Dieses Problem tritt auf, wenn eine der folgenden Plattformen im Projekt ausgerichtet ist:
-
.NET Framework 4.5 und Windows Phone 8
-
.NET Framework 4.5, .NET für Windows Store-apps und Windows Phone 8
Ursache
Dieses Problem tritt auf, weil Visual Studio 2012 Update 2 installiert wurde, nachdem das Windows Phone Software Development Kit (SDK) 8.0 installiert wurde. Daher wurden die folgenden Dateien:
-
%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
PROBLEMUMGEHUNG
Um dieses Problem zu beheben, führen Sie Visual Studio 2012 Reparatur aus. Gehen Sie hierzu folgendermaßen vor:
-
Klicken Sie auf Start, klicken Sie auf Systemsteuerungklicken Sie auf Programmeund klicken Sie dann auf Programme und Funktionen.
-
Maustaste auf die Version von Visual Studio 2012, die Sie installiert haben und klicken Sie auf Ändern.
-
Klicken Sie auf Reparieren , wenn Visual Studio 2012-Setup-Assistent wird geöffnet.
Hinweis Wenn Sie eine neue Entwicklungsumgebung einrichten, um dieses Problem zu vermeiden installieren Visual Studio 2012 Update 2 Sie vor der Installation von Windows Phone 8.0 SDK.
Status
Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.