Gäller för
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

Introduktion

Bärbar klassbibliotek problem kan uppstå när du installerar Microsoft Visual Studio 2012 uppdatering 2. Den här artikeln beskrivs de problem och deras lösningar.

Problem 1

Symptom

När du använder resurser för att bygga en bärbar klassbiblioteket projekt när du har installerat Visual Studio 2012 uppdatering 2, kan det hända att följande felmeddelande visas:

'System.Type' inte innehåller en definition för 'Paketet' och ingen metod med tillägget 'Paketet' acceptera ett första argument av typen 'System.Type' hittades (saknar du en med direktiv eller en sammansättningsreferens?)

Obs!  Du kan få detta felmeddelande när du använder Microsoft Visual C#.

'Paket' är inte en medlem av 'System.Type'

Obs!  Du kan få detta felmeddelande när du använder Microsoft Visual Basic.Det här problemet uppstår när något av följande plattformar är riktad i projektet:

  • Microsoft.NET Framework 4.5 och .NET för Windows Store apps

  • .NET Framework 4.5 och Windows Phone 8

  • .NET Framework 4.5, .NET för Windows Store-appar och Windows Phone 8

Temporär lösning

Åtgärda designer genererade koden i resursfilen om du vill undvika det här problemet. Genom att dubbelklicka på felmeddelandet och gör sedan följande:

För Visual C#

  1. Lägg till följande med hjälp av direktivet:

    using System.Reflection;
  2. Sök efter följande kod:

    typeof(Resource1).Assembly

    Ersätt Koden med följande kod:

    typeof(Resource1).GetTypeInfo().Assembly

Följande kod är ett exempel som har det här problemet:

        /// <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. Lägg till följande med hjälp av direktivet:

    Imports System.Reflection;
  2. Sök efter följande kod:

    GetType(Resource1).Assembly

    Ersätt Koden med följande kod:

    GetType(Resource1).GetTypeInfo().Assembly

Följande kod är ett exempel som har det här problemet:

        '''<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

Symptom

Du kan inte använda resurser för att bygga en bärbar klassbiblioteket projekt när du har installerat Visual Studio 2012 uppdatering 2. Dessutom får du ett av många olika felmeddelanden. Till exempel kan du få något av följande felmeddelanden:

Typen 'System.Net.HttpStatusCode' definieras i en sammansättning som inte refereras. Du måste lägga till en referens till sammansättningen ' System.Net, Version = 2.0.5.0 kultur = neutral, PublicKeyToken = 7cec85d7bea7798e Retargetable = Ja.

Det går inte att implicit konvertera typen 'System.Net.HttpStatusCode' till ' System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\. NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll]'

Observera att det här problemet uppstår när något av följande plattformar är riktad i projektet:

  • .NET Framework 4.5 och Windows Phone 8

  • .NET Framework 4.5, .NET för Windows Store-appar och Windows Phone 8

Orsak

Det här problemet uppstår eftersom Visual Studio 2012 uppdatering 2 installerades efter installationen av Windows Phone Software Development Kit (SDK) 8.0. Därför följande filer har tagits bort:

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

Temporär lösning

Lös problemet genom att köra reparationsprogram för Visual Studio 2012. Gör så här:

  1. Klicka på Start, Kontrollpanelen, programoch klicka sedan på program och funktioner.

  2. Högerklicka på versionen av Visual Studio 2012 som du har installerat och klicka sedan på Ändra.

  3. Klicka på Reparera när Visual Studio 2012 guiden öppnas.

Obs! Om du ställer in en ny miljö för utvecklare för att undvika det här problemet bör du installera Visual Studio 2012 uppdatering 2 innan du installerar Windows Phone 8.0 SDK.

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.