Attiecas uz
Visual Studio Ultimate 2012 Visual Studio Premium 2012 Visual Studio Express 2012 for Windows 8 Visual Studio Express 2012 for Windows Desktop Visual Studio Express 2012 for Windows Phone

Ievads

Portatīvā klašu bibliotēku problēmas var rasties, instalējot Microsoft Visual Studio 2012. gada 2. atjauninājumu. Šajā rakstā ir izklāstīts šīs problēmas un to risinājumi.

1. problēma

Pazīmes

Lietojot resursi portatīvo klases bibliotēkas projekts veidot pēc instalēšanas Visual Studio 2012 Update 2, varat saņemt šādus kļūdas ziņojumus:

'System.Type' nesatur definīcija "Mezgls" un "Mezgls" pieņem pirmais arguments "System.Type" tipa paplašinājumu metodi nevar atrast (trūkst datu, izmantojot direktīvas vai montāžas atsauce?)

Piezīme. Šī kļūda rodas, ja izmantojat Microsoft Visual c#.

"Mezgls" nav iekļauts "System.Type"

Piezīme. Šī kļūda rodas, ja izmantojat Microsoft Visual Basic.Šī problēma rodas, ja kādu no šādām platformām paredzēta projekta:

  • Microsoft .NET Framework 4.5 un .NET Windows veikala programmām

  • .NET Framework 4.5 un Windows Phone 8

  • .NET Framework 4.5 .NET Windows veikala programmām un Windows Phone 8

Risinājums

Lai novērstu šo problēmu, labot noformētājs ģenerēts kods resursu fails. Lai to izdarītu, veiciet dubultklikšķi uz kļūdas ziņojumu un pēc tam rīkojieties šādi:

Par Visual c#

  1. Pievienojiet šādu direktīvu, izmantojot:

    using System.Reflection;
  2. Atrodiet šādu kodu:

    typeof(Resource1).Assembly

    Nomainiet šo kodu ar šādu kodu:

    typeof(Resource1).GetTypeInfo().Assembly

Šis kods ir piemērs, kurā ir šī problēma:

        /// <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. Pievienojiet šādu direktīvu, izmantojot:

    Imports System.Reflection;
  2. Atrodiet šādu kodu:

    GetType(Resource1).Assembly

    Nomainiet šo kodu ar šādu kodu:

    GetType(Resource1).GetTypeInfo().Assembly

Šis kods ir piemērs, kurā ir šī problēma:

        '''<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ēma 2

Pazīmes

Resursu nevar izmantot, lai izveidotu portatīvo klases bibliotēkas projektu pēc instalēšanas Visual Studio 2012 Update 2. Turklāt, jūs, iespējams, saņemsit daudzus dažādus kļūdu ziņojumus. Piemēram, varat saņemt kādu no šiem kļūdas ziņojumiem:

Ierakstiet "System.Net.HttpStatusCode" ir definēts montāžas nav atsauces. Jāpievieno atsauce uz montāžas ' System.Net, Version = 2.0.5.0 Culture neutral, PublicKeyToken = = 7cec85d7bea7798e Retargetable = Jā.

Nevar tieši konvertēt tipu 'System.Net.HttpStatusCode' ' System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\. NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll] "

Ievērojiet, ka šī problēma rodas, ja kādu no šādām platformām paredzēta projekta:

  • .NET Framework 4.5 un Windows Phone 8

  • .NET Framework 4.5 .NET Windows veikala programmām un Windows Phone 8

Cēlonis

Šī problēma rodas tādēļ, ka Visual Studio 2012 Update 2 tika uzstādīta pēc instalēšanas Windows Phone programmatūras izstrādes komplekts (SDK) 8.0. Tādēļ ir izdzēsti šādi faili:

  • %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

Risinājums

Lai novērstu šo problēmu, palaidiet programmu Visual Studio 2012 remonts. Lai to izdarītu, izpildiet tālāk norādītās darbības.

  1. Noklikšķiniet uz Sākt, noklikšķiniet uz Vadības panelis, noklikšķiniet uz programmasun pēc tam noklikšķiniet uz programmas un līdzekļi.

  2. Ar peles labo pogu noklikšķiniet uz Visual Studio 2012 instalētās versijas un pēc tam noklikšķiniet uz mainīt.

  3. Atverot Visual Studio 2012 iestatīšanas vedni, noklikšķiniet uz izlabot .

Piezīme. Iestatot jauna izstrādātāja vidē, lai novērstu šo problēmu, ir jāinstalē Visual Studio 2012 Update 2 pirms instalējat Windows Phone 8.0 SDK.

Statusa

Korporācija Microsoft ir apstiprinājusi, ka šī problēma pastāv Microsoft produktos, kas ir minēti sadaļā "Attiecas uz".

Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.