Aplica-se a
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

Introdução

Problemas de bibliotecas de classes portáteis podem ocorrer após a instalação da atualização 2 do Microsoft Visual Studio 2012. Este artigo descreve esses problemas e suas soluções alternativas.

Problema 1

Sintomas

Quando você usa recursos para criar um projeto de biblioteca de classes portátil após a instalação da atualização 2 do Visual Studio 2012, você pode receber as seguintes mensagens de erro:

'Type' não contém uma definição para 'Assembly' e nenhum método de extensão 'Assembly' aceitar um argumento do tipo 'System. Type' primeiro foi encontrado (está faltando um usando diretiva ou uma referência de assembly?)

Observação: Você recebe esse erro quando você usar o Microsoft Visual C#.

'Assembly' não é um membro de 'System. Type'

Observação: Você recebe esse erro quando você usar o Microsoft Visual Basic.Esse problema ocorre quando uma das seguintes plataformas destina-se em seu projeto:

  • O Microsoft.NET Framework 4.5 e .NET para aplicativos da Windows Store

  • O.NET Framework 4.5 e Windows Phone 8

  • O.NET Framework 4.5, .NET para aplicativos da Windows Store e Windows Phone 8

Solução alternativa

Para contornar esse problema, corrija o código gerado pelo designer do arquivo de recursos. Para fazer isso, clique duas vezes a mensagem de erro e, em seguida, execute as seguintes etapas:

Para o Visual C#

  1. Adicione o seguinte usando a diretiva:

    using System.Reflection;
  2. Localize o código a seguir:

    typeof(Resource1).Assembly

    Substitua o código com o seguinte código:

    typeof(Resource1).GetTypeInfo().Assembly

O código a seguir é um exemplo que tem esse 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. Adicione o seguinte usando a diretiva:

    Imports System.Reflection;
  2. Localize o código a seguir:

    GetType(Resource1).Assembly

    Substitua o código com o seguinte código:

    GetType(Resource1).GetTypeInfo().Assembly

O código a seguir é um exemplo que tem esse 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

Problema 2

Sintomas

Você não pode usar recursos para criar um projeto de biblioteca de classes portátil após a instalação da atualização 2 do Visual Studio 2012. Além disso, você pode receber uma das muitas mensagens de erro diferentes. Por exemplo, você pode receber uma das seguintes mensagens de erro:

O tipo 'System.Net.HttpStatusCode' está definido em um assembly que não é referenciado. Você deve adicionar uma referência ao assembly ' System.Net, versão = 2.0.5.0, Culture = neutral, PublicKeyToken = 7cec85d7bea7798e, Retargetable = Yes'.

Não é possível converter implicitamente o tipo 'System.Net.HttpStatusCode' para ' System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\. NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll]'

Observe que esse problema ocorre quando uma das seguintes plataformas destina-se em seu projeto:

  • O.NET Framework 4.5 e Windows Phone 8

  • O.NET Framework 4.5, .NET para aplicativos da Windows Store e Windows Phone 8

Causa

Esse problema ocorre porque o Visual Studio 2012 Update 2 foi instalado depois que o Windows Phone Software Development Kit (SDK) 8.0 foi instalado. Portanto, os seguintes arquivos foram excluídos:

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

Solução alternativa

Para resolver esse problema, execute o programa de reparação do Visual Studio 2012. Para fazer isso, execute as seguintes etapas:

  1. Clique em Iniciar, clique em Painel de controle, clique em programase, em seguida, clique em programas e recursos.

  2. Clique com botão direito a versão do Visual Studio 2012 que você instalou e, em seguida, clique em Alterar.

  3. Clique em Reparar quando é aberto o Assistente de instalação do Visual Studio 2012.

Observação: Se você configurar um novo ambiente de desenvolvedor, para evitar esse problema, você deve instalar o Visual Studio 2012 Update 2 antes de instalar o SDK do Windows Phone 8.0.

Status

A Microsoft confirma que este é um problema em seus produtos listados na seção "Aplica-se a".

Precisa de mais ajuda?

Quer mais opções

Explore os benefícios da assinatura, procure cursos de treinamento, saiba como proteger seu dispositivo e muito mais.