Paso la mayor parte del tiempo desarrollando controles tanto para WPF como para Silverlight usando la misma base de código. Para hacer esto agrego los archivos existentes de un proyecto (por ejemplo, Silverlight) "como enlaces" al otro (digamos WPF). Para pequeñas diferencias utilizo directivas del preprocesador comoVisual Studio: "Este documento lo abre otro proyecto"
#if SILVERLIGHT
...
#else
...
#endif
El código de estos bloques aparece desactivado dependiendo del tipo de proyecto que haya abierto el archivo. Entonces, si abre su archivo desde el proyecto Silverlight (donde está definida SILVERLIGHT), la parte else es gris e Intellisense no funciona.
Para que la parte de WPF sea procesada por IDE (con colores e Intellisense), debe abrir el archivo desde el proyecto de WPF. Cuando intenta hacer eso, aparece un cuadro de mensaje que dice "Este documento está abierto por otro proyecto" y cuando hace clic en Aceptar, muestra ese archivo en el contexto del proyecto Silverlight (no es lo que quería ver). Así que tengo que cerrar el archivo, navegar al proyecto WPF nuevamente y abrir el archivo nuevamente. Esto es muy, muy molesto.
Así que la pregunta es: ¿hay algún tipo de configuración o complemento que haga que Visual Studio vuelva a abrir el archivo del proyecto donde hice doble clic en él en lugar de mostrar ese estúpido cuadro de mensaje y mostrarme ese archivo del proyecto "incorrecto"?
Hasta ahora no hay solución para este problema aparte de cerrar el archivo. Además, es la razón por la cual dll bloquea la excepción "No se puede construir ..." en VS2010. –
Me pregunto si teóricamente es posible que el complemento maneje esto: reciba una notificación antes de que el usuario intente abrir un archivo, busque si el mismo archivo ya está abierto desde otro proyecto, cierre ese archivo y vuelva a abrir desde el proyecto actual. Suena factible si tales API están en su lugar. –
Hombre, eso sería realmente bueno. Es molesto tener que cerrar y abrir el archivo todo el tiempo. – andrecarlucci