Introducción

Problemas de las bibliotecas de clases portables pueden producirse después de instalar Microsoft Visual Studio 2012 Update 2. Este artículo describe los problemas y sus soluciones.

Problema 1

Síntomas

Cuando utiliza recursos para generar un proyecto de biblioteca de clases Portable después de instalar Visual Studio 2012 actualización 2, puede recibir los mensajes de error siguientes:

No se puede encontrar ningún método de extensión 'Ensamblado' que acepte un primer argumento de tipo 'System.Type' y 'System.Type' no contiene una definición para 'Ensamblado' (¿falta una utilizando Directiva o una referencia de ensamblado?)

Nota: Recibes este error cuando se utiliza Microsoft Visual C#.

'Ensamblado' no es un miembro de 'System.Type'

Nota: Recibes este error cuando se utiliza Microsoft Visual Basic.

Este problema se produce cuando una de las siguientes plataformas de destino es en el proyecto:

  • La de Microsoft.NET Framework 4.5 y .NET para aplicaciones de Windows Store

  • El.NET Framework 4.5 y Windows Phone 8

  • El.NET Framework 4.5, .NET para aplicaciones de almacén de Windows y Windows Phone 8


Solución alternativa

Para evitar este problema, corrija el código generado por el diseñador del archivo de recursos. Para ello, haga doble clic en el mensaje de error y, a continuación, siga estos pasos:

Para Visual C#

  1. Agregue la siguiente directiva using:

    using System.Reflection;
  2. Busque el código siguiente:

    typeof(Resource1).Assembly

    Reemplace el código con el código siguiente:

    typeof(Resource1).GetTypeInfo().Assembly

El código siguiente es un ejemplo que tiene este 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. Agregue la siguiente directiva using:

    Imports System.Reflection;
  2. Busque el código siguiente:

    GetType(Resource1).Assembly

    Reemplace el código con el código siguiente:

    GetType(Resource1).GetTypeInfo().Assembly

El código siguiente es un ejemplo que tiene este 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

Síntomas

No puede utilizar recursos para generar un proyecto de biblioteca de clases Portable después de instalar Visual Studio 2012 Update 2. Además, puede recibir uno de los muchos mensajes de error diferentes. Por ejemplo, puede recibir uno de los siguientes mensajes de error:

El tipo 'System.Net.HttpStatusCode' se define en un ensamblado que no se hace referencia. Debe agregar una referencia al ensamblado ' System.Net, versión = 2.0.5.0, Culture = neutral, PublicKeyToken = 7cec85d7bea7798e, Retargetable = Yes'.


No se puede convertir implícitamente el tipo 'System.Net.HttpStatusCode' a ' System.Net.HttpStatusCode [%programfiles%\Reference Assemblies\Microsoft\Framework\. NETPortable\v4.5\Profile\Profile78\System.Net.Primitives.dll]'


Tenga en cuenta que este problema se produce cuando una de las siguientes plataformas de destino es en el proyecto:

  • El.NET Framework 4.5 y Windows Phone 8

  • El.NET Framework 4.5, .NET para aplicaciones de almacén de Windows y Windows Phone 8


Causa

Este problema se produce porque Visual Studio 2012 actualización 2 se instaló después de instalar el Windows Phone Software Development Kit (SDK) 8.0. Por lo tanto, se eliminaron los siguientes archivos:

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


Solución alternativa

Para resolver este problema, ejecute el programa de reparación de 2012 de Visual Studio. Para ello, siga estos pasos:

  1. Haga clic en Inicio, haga clic en Panel de Control, haga clic en programas y, a continuación, haga clic en programas y características.

  2. (Ratón) en la versión de Visual Studio de 2012 que haya instalado y, a continuación, haga clic en cambiar.

  3. Cuando se abre el Asistente de instalación de Visual Studio 2012, haga clic en Reparar .

Nota: Si configura un nuevo entorno de desarrollador, para evitar este problema, debe instalar Visual Studio 2012 actualización 2 antes de instalar el SDK de Windows Phone 8.0.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a tu experiencia?

¡Gracias por sus comentarios!

×