Ισχύει για
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

Εισαγωγή

Φορητή βιβλιοθήκες κλάσης ζητήματα ενδέχεται να προκύψει μετά την εγκατάσταση του Microsoft Visual Studio 2012 ενημερωμένη έκδοση 2. Αυτό το άρθρο περιγράφει αυτά τα θέματα και τους τρόπους αντιμετώπισής τους.

Πρόβλημα 1

Συμπτώματα

Όταν χρησιμοποιείτε πόρους για να δημιουργήσετε ένα έργο φορητή βιβλιοθήκη κλάσεων μετά την εγκατάσταση του Visual Studio 2012 συνάθροιση 2, ενδέχεται να λάβετε τα ακόλουθα μηνύματα λάθους:

'System.Type' δεν περιέχει έναν ορισμό για το 'Assembly' και βρέθηκε καμία μέθοδος επέκτασης 'Assembly' Αποδοχή ένα πρώτο όρισμα του τύπου 'System.Type' (λείπει μια χρήση της οδηγίας ή μια αναφορά συγκρότησης;)

Σημείωση Λαμβάνετε αυτό το σφάλμα, όταν χρησιμοποιείτε το Microsoft Visual C#.

'Assembly' δεν είναι μέλος του 'System.Type'

Σημείωση Λαμβάνετε αυτό το σφάλμα, όταν χρησιμοποιείτε το Microsoft Visual Basic.Αυτό το ζήτημα παρουσιάζεται όταν μία από τις ακόλουθες πλατφόρμες προορίζεται για το έργο σας:

  • Το Microsoft .NET Framework 4.5 και το .NET για εφαρμογές του χώρου αποθήκευσης των Windows

  • Το .NET Framework 4.5 και το Windows Phone 8

  • Το .NET Framework 4.5, για τις εφαρμογές του χώρου αποθήκευσης των Windows .NET και Windows Phone 8

Εναλλακτικός τρόπος αντιμετώπισης

Για να επιλύσετε αυτό το ζήτημα, διορθώστε τον κώδικα που δημιουργείται από το σχεδιαστή του αρχείου πόρων. Για να γίνει αυτό, κάντε διπλό κλικ το μήνυμα λάθους και, στη συνέχεια, ακολουθήστε τα εξής βήματα:

Για Visual C#

  1. Προσθέστε τα ακόλουθα χρησιμοποιώντας οδηγία:

    using System.Reflection;
  2. Βρείτε τον ακόλουθο κώδικα:

    typeof(Resource1).Assembly

    Αντικαταστήστε τον κωδικό με τον ακόλουθο κώδικα:

    typeof(Resource1).GetTypeInfo().Assembly

Ο κώδικας που ακολουθεί είναι ένα παράδειγμα που έχει αυτό το ζήτημα:

        /// <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. Προσθέστε τα ακόλουθα χρησιμοποιώντας οδηγία:

    Imports System.Reflection;
  2. Βρείτε τον ακόλουθο κώδικα:

    GetType(Resource1).Assembly

    Αντικαταστήστε τον κωδικό με τον ακόλουθο κώδικα:

    GetType(Resource1).GetTypeInfo().Assembly

Ο κώδικας που ακολουθεί είναι ένα παράδειγμα που έχει αυτό το ζήτημα:

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

Συμπτώματα

Δεν μπορείτε να χρησιμοποιήσετε πόρους για να δημιουργήσετε ένα έργο φορητή βιβλιοθήκη κλάσεων μετά την εγκατάσταση του Visual Studio 2012 συνάθροιση 2. Επιπλέον, ενδέχεται να λάβετε ένα από τα πολλά διαφορετικά μηνύματα λάθους. Για παράδειγμα, ενδέχεται να εμφανιστεί ένα από τα ακόλουθα μηνύματα λάθους:

Ο τύπος 'System.Net.HttpStatusCode' ορίζεται σε μια συγκρότηση στην οποία δεν γίνεται αναφορά. Πρέπει να προσθέσετε μια αναφορά στη συγκρότηση ' System.Net, έκδοση = 2.0.5.0, κουλτούρα = ουδέτερη, PublicKeyToken = 7cec85d7bea7798e, Retargetable = Ναι.

Δεν είναι δυνατό να έμμεση μετατροπή από τύπο 'System.Net.HttpStatusCode' σε ' System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\. NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll]»

Σημείωση Αυτό το ζήτημα παρουσιάζεται όταν μία από τις ακόλουθες πλατφόρμες προορίζεται για το έργο σας:

  • Το .NET Framework 4.5 και το Windows Phone 8

  • Το .NET Framework 4.5, για τις εφαρμογές του χώρου αποθήκευσης των Windows .NET και Windows Phone 8

Αιτία

Αυτό το ζήτημα παρουσιάζεται επειδή το Visual Studio 2012 συνάθροιση 2 είχε εγκατασταθεί μετά την εγκατάσταση του Windows Phone κιτ ανάπτυξης λογισμικού (SDK) 8.0. Κατά συνέπεια, διαγράφηκαν τα ακόλουθα αρχεία:

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

Εναλλακτικός τρόπος αντιμετώπισης

Για να επιλύσετε αυτό το ζήτημα, εκτελέστε το πρόγραμμα επιδιόρθωσης του Visual Studio 2012. Για να το κάνετε αυτό, ακολουθήστε τα εξής βήματα:

  1. Κάντε κλικ στο κουμπί Έναρξη, κάντε κλικ στην επιλογή Πίνακας ελέγχου, κάντε κλικ στην εντολή προγράμματακαι, στη συνέχεια, κάντε κλικ στην επιλογή προγράμματα και δυνατότητες.

  2. Κάντε δεξιό κλικ στην έκδοση του Visual 2012 Studio που έχετε εγκαταστήσει και, στη συνέχεια, κάντε κλικ στο κουμπί Αλλαγή.

  3. Όταν ανοίγει ο οδηγός Visual Studio 2012 το πρόγραμμα εγκατάστασης, κάντε κλικ στο κουμπί " επιδιόρθωση ".

Σημείωση Εάν εγκαταστήσετε ένα νέο περιβάλλον προγραμματιστή, για να αποφύγετε αυτό το ζήτημα, θα πρέπει να εγκαταστήσετε Visual Studio 2012 συνάθροιση 2 πριν από την εγκατάσταση του SDK του Windows Phone 8.0.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.