Úvod
Prenosný knižnice tried problémy môžu nastať, ak nainštalujete program Microsoft Visual Studio 2012 aktualizácia 2. Tento článok popisuje tieto problémy a ich riešenia.
Problém 1
Príznaky
Pri použití prostriedkov vytvoriť prenosné triedy knižnica projekt po inštalácii Visual Studio 2012 aktualizácia 2, zobrazí sa chybové hlásenie:
"System.Type" neobsahuje definíciu pre "Zhromaždenia" a rozšírenie metóda "Zhromaždenia" prijímať prvý argument typu "System.Type" sa nenašiel (vám chýbajú pomocou smernice alebo odkaz na zostavu?)
Poznámka: Táto chyba sa zobrazuje, keď použijete program Microsoft Visual C#.
"Zhromaždenia" nie je členom "System.Type"
Poznámka: Táto chyba sa zobrazuje, keď použijete program Microsoft Visual Basic.
Tento problém sa vyskytuje, keď jeden z nasledujúcich platforiem spomína v projekte:-
Microsoft .NET Framework 4.5 a .NET pre Windows Store aplikácie
-
Windows Phone 8 a .NET Framework 4.5
-
.NET Framework 4.5, .NET aplikácií zo služby Windows Obchod a Windows Phone 8
Alternatívne riešenie
Tento problém obísť, odstrániť generované designer kód súboru prostriedkov. Chcete urobiť, dvakrát kliknite na hlásenie a potom postupujte podľa nasledujúcich krokov:
Pre Visual C#
-
Pridajte pomocou smernice:
using System.Reflection;
-
Vyhľadajte nasledujúci kód:
typeof(Resource1).Assembly
Tento kód nahradiť nasledujúci kód:
typeof(Resource1).GetTypeInfo().Assembly
Nasledujúci kód je príkladom, ktorý má tento problém:
/// <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
-
Pridajte pomocou smernice:
Imports System.Reflection;
-
Vyhľadajte nasledujúci kód:
GetType(Resource1).Assembly
Tento kód nahradiť nasledujúci kód:
GetType(Resource1).GetTypeInfo().Assembly
Nasledujúci kód je príkladom, ktorý má tento problém:
'''<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
Problém 2
Príznaky
Nemôžete použiť zdrojov vytvoriť prenosné triedy knižnica projekt po inštalácii Visual Studio 2012 aktualizácia 2. Okrem toho sa môže zobraziť niektorý z viacerých rôznych chybových hlásení. Napríklad, zobrazí sa jedno z nasledujúcich chybových hlásení:
Typ "System.Net.HttpStatusCode" je definovaný v neodkazuje zostavy. Musíte pridať odkaz na zhromaždenie "System.Net, verzia = 2.0.5.0, Culture = neutral, PublicKeyToken = 7cec85d7bea7798e Retargetable = Áno.
Nemožno implicitne konvertovať typu "System.Net.HttpStatusCode" na "System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\. NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll] "
Poznámka: Tento problém sa vyskytuje, keď jeden z nasledujúcich platforiem spomína v projekte:
-
Windows Phone 8 a .NET Framework 4.5
-
.NET Framework 4.5, .NET aplikácií zo služby Windows Obchod a Windows Phone 8
Príčina
Tento problém sa vyskytuje, pretože Visual Studio 2012 aktualizácia 2 bola nainštalovaná po nainštalovaní systému Windows Phone Software Development Kit (SDK) 8.0. Preto boli odstránené nasledujúce súbory:
-
%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
Alternatívne riešenie
Vyriešiť tento problém, spustite opravu programu Visual Studio 2012. Ak to chcete urobiť, postupujte nasledovne:
-
Kliknite na tlačidlo Štart, na položku Ovládací Panel, programya kliknite na položku programy a súčasti.
-
Kliknite pravým tlačidlom myši na verziu Visual Studio 2012, nainštalovaný a kliknite na položku zmeniť.
-
Pri otvorení aplikácie Visual Studio 2012 Setup wizard, kliknite na tlačidlo opraviť .
Poznámka: Ak ste nastavili nové vývojárske prostredie, zabránite, nainštalujete aplikácie Visual Studio 2012 aktualizácia 2 pred inštaláciou Windows Phone 8.0 SDK.
Stav
Spoločnosť Microsoft potvrdila, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v časti Vzťahuje sa na.