Įvadas
Nešiojamasis klasės bibliotekos problemų gali kilti, kai įdiegiate "Microsoft" Visual Studio 2012 atnaujinimas 2. Šiame straipsnyje aprašoma šių problemų ir jų sprendimo būdai.
1 problema
Požymiai
Naudojant išteklių sukurti perkeliamą Class Library projekto įdiegus Visual Studio 2012 atnaujinimas 2, gaunate toliau pateiktų klaidų pranešimų:
"System.Type" nėra apibrėžimas "Sistema" ir neįmanoma rasti jokių pratęsimo metodas "Sistema" priimant pirmasis argumentas "System.Type" tipo (jų nėra naudojant direktyvos arba yra rinkinio nuoroda?)
Pastaba. Šį klaidos pranešimą gaunate, kai naudojate Microsoft Visual C#.
"Sistema" nėra "System.Type"
Pastaba. Šį klaidos pranešimą gaunate, kai naudojate Microsoft Visual Basic.
Ši problema kyla, kai vienas iš šių platformų projekte:
-
Microsoft .NET Framework 4.5 ir "Windows" parduotuvės programėlių .NET
-
.NET Framework 4.5 ir "Windows Phone 8"
-
.NET Framework 4.5, .NET, "Windows" parduotuvės programėlių ir "Windows Phone 8"
Sprendimas
Norėdami išspręsti šią problemą, nustatyti išteklių failą dizaino įrankis generuoja kodą. Norėdami tai padaryti, dukart spustelėkite klaidos pranešimą, ir tada atlikite šiuos veiksmus:
Jei norite gauti "Visual C#"
-
Pridėkite naudojant direktyvą:
using System.Reflection;
-
Rasti šį kodą:
typeof(Resource1).Assembly
Pakeiskite šį kodą šį kodą:
typeof(Resource1).GetTypeInfo().Assembly
Šis kodas yra pavyzdys, kuriame yra problema:
/// <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
-
Pridėkite naudojant direktyvą:
Imports System.Reflection;
-
Rasti šį kodą:
GetType(Resource1).Assembly
Pakeiskite šį kodą šį kodą:
GetType(Resource1).GetTypeInfo().Assembly
Šis kodas yra pavyzdys, kuriame yra problema:
'''<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
2 problema
Požymiai
Išteklių negalite sukurti nešiojamasis Class Library projekto įdiegus Visual Studio 2012 atnaujinimas 2. Be to, galite gauti vieną iš daugelio skirtingų klaidų pranešimų. Pavyzdžiui, galite gauti vieną iš šių klaidos pranešimų:
Įveskite "System.Net.HttpStatusCode" yra nurodyta rinkinio, kuris nėra nurodytas. Turite įtraukti nuorodą į surinkimo "System.Net, versija = 2.0.5.0, Culture = neutral, PublicKeyToken = 7cec85d7bea7798e Retargetable = taip.
Netiesiogiai negali konvertuoti tipo "System.Net.HttpStatusCode" ir "System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\. NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll] "
Atkreipkite dėmesį, ši problema kyla, kai vienas iš šių platformų projekte:
-
.NET Framework 4.5 ir "Windows Phone 8"
-
.NET Framework 4.5, .NET, "Windows" parduotuvės programėlių ir "Windows Phone 8"
Priežastis
Ši problema kyla dėl to, kad Visual Studio 2012 naujinimo 2 įdiegus kompiuteryje buvo įdiegta ir Windows Phone programinės įrangos kūrimo rinkinys (SDK) 8.0 buvo. Todėl buvo panaikinti šiuos failus:
-
%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
Sprendimas
Norėdami išspręsti šią problemą, paleiskite Visual Studio 2012 atkūrimo programą. Norėdami tai padaryti, atlikite šiuos veiksmus:
-
Spustelėkite pradėti, spustelėkite Valdymo skydas, spustelėkite programosir tada spustelėkite programos ir funkcijos.
-
Dešiniuoju pelės mygtuku spustelėkite Visual Studio 2012 įdiegtą versiją ir tada spustelėkite keisti.
-
Atsidarius Visual Studio 2012 sąrankos vedlį, spustelėkite Taisyti .
Pastaba. Jei norite nustatyti naują kūrėjų aplinkoje, Norėdami išvengti šios problemos, diekite Visual Studio 2012 atnaujinimas 2 prieš diegdami "Windows Phone 8.0" SDK.
Būsena
„Microsoft“ patvirtino, kad tai yra „Microsoft“ produktų, išvardytų skyriuje „Taikoma“, problema.