Prisijunkite prie „Microsoft“
Prisijunkite arba sukurkite paskyrą.
Sveiki,
Pasirinkti kitą paskyrą.
Turite kelias paskyras
Pasirinkite paskyrą, kurią naudodami norite prisijungti.

Į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#"

  1. Pridėkite naudojant direktyvą:

    using System.Reflection;
  2. 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

  1. Pridėkite naudojant direktyvą:

    Imports System.Reflection;
  2. 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:

  1. Spustelėkite pradėti, spustelėkite Valdymo skydas, spustelėkite programosir tada spustelėkite programos ir funkcijos.

  2. Dešiniuoju pelės mygtuku spustelėkite Visual Studio 2012 įdiegtą versiją ir tada spustelėkite keisti.

  3. 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.

Reikia daugiau pagalbos?

Norite daugiau parinkčių?

Sužinokite apie prenumeratos pranašumus, peržiūrėkite mokymo kursus, sužinokite, kaip apsaugoti savo įrenginį ir kt.

Bendruomenės padeda užduoti klausimus ir į juos atsakyti, pateikti atsiliepimų ir išgirsti iš ekspertų, turinčių daug žinių.

Ar ši informacija buvo naudinga?

Ar esate patenkinti kalbos kokybe?
Kas turėjo įtakos jūsų įspūdžiams?
Paspaudus mygtuką Pateikti, jūsų atsiliepimai bus naudojami tobulinant „Microsoft“ produktus ir paslaugas. Jūsų IT administratorius galės rinkti šiuos duomenis. Privatumo patvirtinimas.

Dėkojame už jūsų atsiliepimą!

×