2012-09-14 21 views
20

Estoy teniendo un problema aquí, en nuestra empresa tenemos una capa DA autoenrollada que utiliza genéricos de autorreferencia. En Visual Studio 2010, el IDE estaba perfectamente contento con esto, sin embargo 2012 parece estar teniendo dificultades, aunque cuando construimos, tiene éxito.Visual Studio 2012 - Errores de análisis genéricos de autoreferenciación

Aquí se muestra un ejemplo:

Example of parsing error

La definición DataObject es el siguiente:

[TypeDescriptionProvider(typeof(HyperTypeDescriptor.HyperTypeDescriptionProvider))] 
public class DataObject<T> : 
    INotifyPropertyChanged, 
    IDataErrorInfo, 
    IEditableObject, 
    IDataObject 
    where T : 
     DataObject<T>, 
     new() 

Me di cuenta que no es la más simple de las definiciones, pero su legal, y se construye Perfectamente bien.

Sin embargo, este 'problema' hace que intellisense falle, así como la función 'Ir a definición', que ni que decir tiene que es frustrante.

He intentado eliminar y volver a agregar las referencias, pero el problema persiste.

VS2010 está muy contento y es lo que he vuelto a usar, VS2012 es muy agradable y receptivo, pero si este problema persiste, es un factor decisivo.

¿Alguien tiene alguna idea?


¿Quieres hacer un par de cosas claras, este tema es uno intermitente (que es un dolor que es realmente difícil de rastrear la causa raíz).

Rompe intellisense y "ir a la definición" en todas partes, no solo para la clase con el error.

Voy a intentar construir una solución de ejemplo para enviar a conectarse, pero el tiempo no está de mi parte últimamente.

+1

¿Cuál es el error o la excepción que recibe? –

+0

Acabo de volver a abrir VS20112 nuevamente para tratar de copiar el error que indica la línea roja ondulada anterior y no lo está haciendo en este momento, pero lo volverá a hacer en algún momento. Básicamente, el error de lo anterior era que no podía encontrar la definición de clase, como si hiciera ctrl +. me ofrecería generar el tipo para mí, a pesar de estar en el tipo necesario. – Marlon

+7

Seleccione el marco completo en lugar del perfil del cliente. Si eso no ayuda, entonces realmente necesita publicar esto en connect.microsoft.com, los únicos que pueden arreglar esto. Necesitarán un buen proyecto de reprografía. –

Respuesta

1

Esto puede suceder si abre la misma solución/proyecto con dos instancias de Visual Studio (incluso dos Visual Studio 2010 por ejemplo). El mecanismo Intellisense usa archivos .NCB que las instancias de Visual Studio no pueden compartir realmente. En este caso, el comportamiento de Intellisense es extraño.

+0

Simon, por interés, ¿sabe usted si la descarga/recarga del proyecto hace que VS reconstruya estos archivos .NCB, ya que al hacerlo pareció resolver el problema intellisense cuando sucedió. – Marlon

+0

No, no estoy al tanto de esto, pero eso no me sorprendería. Creo que el resultado de abrir el mismo proyecto dos veces es indeterminado (con respecto a Intellisense) –

1

Suena tonto, pero me topa con problemas similares con el nuevo código que se introduce o cambia con intellisense. Lo rastreé hasta básicamente necesitar realizar un save all, o incluso limpiar y reconstruir/compilar antes de que intellisense reconozca correctamente que el código es válido.

Algo similar ocurre también en VS2010 que se puede duplicar si se hace una estructura de clase, luego se edita código en otra clase para usarlo, luego se recupera, se cortan funciones de clase y se agregan nuevas sin guardar.

1

A veces, y este no es siempre el caso, ReSharper puede causar problemas con las referencias y la funcionalidad de GTD. ¿Lo tienes instalado?

+0

no, limpia la instalación de VS, no hay complementos instalados aparte de los de Microsoft que vienen preinstalados. – Marlon

Cuestiones relacionadas