2011-01-26 9 views
28

En el proyecto actual en el que estoy trabajando, actualmente hay una gran cantidad de código, lo que significa que actualizar desde el control de código fuente puede significar muchos cambios en el archivo csproj . Como todos sabemos, VS2010 no tiene el botón "Volver a cargar todo", pero debe volver a cargar cada proyecto y confirmar cada recarga.Solución de recarga automática de Visual Studio 2010 cuando cambian los archivos de proyecto

¿Hay algún método donde el proyecto se recargue automáticamente o el IDE puede detectarlo y solicitar una recarga de la solución?

Respuesta

29

Finalmente encontré una solución :

http://lostechies.com/jimmybogard/2011/01/27/reloading-all-projects-with-vscommands/

Citando del sitio:

Muy a menudo voy me encuentro trabajando en situaciones donde múltiples proyectos han cambiado, y Visual Studio pide para recargar ellos, uno a la vez. Esto sucede cuando estoy trabajando mucho con el control de fuente , y hago cosas como cambiando ramas, realizando fusiones, o simplemente integrando cambios ascendentes. Tengo que hacer clic en "Recargar" un millón veces para cada proyecto que cambió en el disco , y es bastante molesto. En la parte superior de eso, VS olvida qué archivos tengo abierto, por lo que cada archivo en el que estaba trabajando se cierra.

que puede ser el último usuario VS para averiguar sobre esto, pero una versión lite gratuita de la VSCommands plugin es available on the Visual Studio Gallery que hace justo lo que necesito - recargar todo cambió proyectos a la vez, preservar que archivos tenía abierta:

+1

Cuando el enlace muere, la solución se pierde para siempre. ¿Podría mejorar su respuesta describiendo la solución? ¡Gracias! –

+0

comentario actualizado. –

+0

@RayBooysen: es posible que desee actualizar el enlace y eliminar los parámetros de Google Analytics (distorsionarán las estadísticas del sitio) - http://lostechies.com/jimmybogard/2011/01/27/reloading-all-projects-with- vscommands/will do. – Oliver

-3

Si ha marcado la opción "detectar cuando se cambia el archivo fuera del entorno" en la sección de opciones "Documentos", los proyectos y archivos se vuelven a cargar cuando se modifican. Funciona para mí cuando cambio de ramas en git.

VS option screenshot

+1

No, no funciona. Ya lo intentamos. –

+3

De hecho, funciona para archivos de origen pero no para archivos de proyecto. –

+0

Hasta VS 2010 (al menos) no existen características tales como la autocarga de archivos de proyecto modificados: siempre tendrá que jugar el juego "Volver a cargar el proyecto" con Visual Studio si un proyecto de archivos cambia fuera de él. – Oliver

4

es un dolor, pero la mejor opción que he encontrado es cerrar la solución antes de obtener el último código fuente.

Si hay más de dos proyectos modificados, es más rápido para descargar manualmente & recargar la totalidad solución de lo que es para obtener y esperar a que se descargue & cargar sólo los proyectos afectados - recarga de proyectos es dolorosamente lento (incluso sin tener que hacer clic en el botón Aceptar para cada proyecto que cambió).

(En mi opinión, la verdadera pregunta es: ¿Por qué se hace esa pregunta en absoluto ??? Si Obtiene el último código fuente, no hay absolutamente ninguna razón cuerdo por qué desea utilizar sólo parte de ella Es como si un empleado de una gasolinera dijera "compraste un poco de combustible. ¿Te gustaría que ahora lo ponga en tu coche o simplemente lo verteré en el suelo?")

+0

El problema es que con la mayoría de las herramientas (en nuestro caso, VisualSVN o AnkhSVN), no se sabe qué ha cambiado hasta que haga clic en actualizar. Y luego juegas el juego "Recargar proyecto" con Visual Studio. –

+0

@Ray Booysen: Acabo de darme cuenta de un enfoque mejorado: solo GLV es normal. Si le pregunta si desea volver a cargar un proyecto modificado, haga clic en "Ignorar": puede pasar rápidamente por todos los proyectos modificados ignorándolos y luego, cerrar/volver a abrir la solución para sincronizar todo. Esto evita la necesidad de cerrar/abrir la solución alrededor de cada GLV; solo lo hace si un proyecto realmente ha cambiado. –

+0

Todavía es un baile que preferiría no hacer con VS. ;) –

1

Bueno, que no funciona si sus caminos referencias cambian en el archivo csproj y su uso de algo así como los sysinternals junction tool para cambiar un enlace simbólico. P.ej. la herramienta cambia D: \ Projects symlink de D: \ Baselines \ 1.0 \ Prjects a D: \ Baselines \ 2.0 \ Proyectos, y debido a que alguien cambió la estructura de la carpeta entre 1.0 y 2.0, su archivo .csproj señala repentinamente la ruta de dll desde .... \ References \ some.dll a .... \ References \ 3rd-Party \ some. dll. Sé que es un caso especial, pero sucede (por ejemplo, en mi empresa).

Sin embargo, hay una solución alternativa, que recomiendo mucho ya que también tiene otros beneficios: la no tan conocida VS 2010 Extension Solution Load Manager. Demora la carga de Proyectos en el fondo, o hasta que se cargue manualmente, lo que mejora mucho el tiempo de carga de la solución para archivos de solución grandes. Tiene este botón de "solución de recarga" en su menú (desafortunadamente parece que no hay atajos) que luego recarga todas las soluciones desde cero, omitiendo/cargando en segundo plano las soluciones que establezca. Un chico de Microsoft comentó en su blog que querían incluir algo similar en VS 2010, pero la función no lo logró.

Claro, puede tomar más tiempo "solo" un clic y actualizar 100 documentos, pero resolvió mi problema de cambios de ruta de referencia (relativos) y proporciona un buen impulso de velocidad cada vez que abro una solución de tamaño medio .

Editar a partir de octubre de 2013 VS2012 incluye esta funcionalidad por defecto. Al menos la carga asincrónica. La funcionalidad "no cargar nada" desafortunadamente solo es posible mediante el uso de un "proyecto de descarga" manual en VS2012. Pero a medida que el consumo de memoria de pr-project disminuyó con VS2012, ya no es un gran negocio.

Cuestiones relacionadas