Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

Wprowadzenie

Przenośne problemy bibliotek klas mogą występować po zainstalowaniu programu Microsoft Visual Studio 2012 aktualizacji 2. W tym artykule opisano te problemy i ich rozwiązania.

Problem 1

Objawy

Kiedy używać zasobów zbudować projekt przenośny Biblioteka klas, po zainstalowaniu programu Visual Studio 2012 aktualizacji 2, może pojawić się następujący komunikat o błędzie:

"System.Type" nie zawiera definicji dla "Assembly" i ma rozszerzenie metody "Assembly" przyjmuje pierwszy argument typu "System.Type" można odnaleźć (czy brakuje using dyrektywa lub odwołania do zestawu?)

Uwaga Pojawi się błąd, gdy używasz Microsoft Visual C#.

"Assembly" nie jest członkiem "System.Type"

Uwaga Pojawi się błąd, gdy używasz programu Microsoft Visual Basic.

Ten problem występuje, gdy jeden z następujących platform jest zadanie w projekcie:

  • Microsoft.NET Framework 4.5 i .NET dla Sklepu Windows

  • .NET Framework 4.5 i Windows Phone 8

  • .NET Framework 4.5, .NET dla Sklepu Windows i Windows Phone 8


Obejście problemu

Aby obejść ten problem, należy naprawić kod generowany przez projektanta pliku zasobów. Aby to zrobić, kliknij dwukrotnie komunikat o błędzie, a następnie wykonaj następujące czynności:

Program Visual C#

  1. Dodaj następujący za pomocą dyrektywy:

    using System.Reflection;
  2. Znajdź następujący kod:

    typeof(Resource1).Assembly

    Tego kodu zamień następujący kod:

    typeof(Resource1).GetTypeInfo().Assembly

Następujący kod jest przykładem, którego dotyczy ten problem:

        /// <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;
}
}


Języka Visual Basic

  1. Dodaj następujący za pomocą dyrektywy:

    Imports System.Reflection;
  2. Znajdź następujący kod:

    GetType(Resource1).Assembly

    Tego kodu zamień następujący kod:

    GetType(Resource1).GetTypeInfo().Assembly

Następujący kod jest przykładem, którego dotyczy ten problem:

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

Objawy

Nie można używać zasobów zbudować projekt przenośny Biblioteka klas, po zainstalowaniu programu Visual Studio 2012 aktualizacji 2. Ponadto może pojawić się jeden z wielu różnych komunikatów o błędach. Na przykład może pojawić się jeden z następujących komunikatów o błędzie:

Typu 'System.Net.HttpStatusCode' jest zdefiniowany w zestawie, który nie jest wywoływany. Należy dodać odwołanie do zestawu "System.Net, Version = 2.0.5.0, kultury = neutral, PublicKeyToken = 7cec85d7bea7798e Retargetable = Yes.


Nie można niejawnie przekonwertować typu 'System.Net.HttpStatusCode' ' System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\. NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll] "


Należy zauważyć, że ten problem występuje, gdy jeden z następujących platform jest zadanie w projekcie:

  • .NET Framework 4.5 i Windows Phone 8

  • .NET Framework 4.5, .NET dla Sklepu Windows i Windows Phone 8


Przyczyna

Ten problem występuje, ponieważ program Visual Studio 2012 aktualizacji 2 został zainstalowany po zainstalowaniu Windows Phone Software Development Kit (SDK) 8.0. W związku z tym zostały usunięte następujące pliki:

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


Obejście problemu

Aby rozwiązać ten problem, uruchom program naprawy programu Visual Studio 2012. Aby to zrobić, wykonaj następujące kroki:

  1. Kliknij przycisk Start, kliknij polecenie Panel sterowania, kliknij Programy, a następnie kliknij pozycję Programy i funkcje.

  2. Kliknij prawym przyciskiem myszy wersji programu Visual Studio 2012, który jest zainstalowany, a następnie kliknij przycisk Zmień.

  3. Po otwarciu kreatora Visual Studio 2012 Instalatora, kliknij przycisk Napraw .

Uwaga: Jeśli ustawione w nowym środowisku autora, aby uniknąć tego problemu, należy zainstalować program Visual Studio 2012 aktualizacji 2 przed zainstalowaniem zestawu SDK systemu Windows Phone 8.0.

Stan

Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×