2011-12-11 15 views
12

MS Visual Studio tiene Solution Explorer donde puedo ver todos los archivos del proyecto, también puedo crear filtros que son como carpetas de archivos para mantenerlos en grupos. El problema es que quiero que mis archivos se dividan en grupos tanto en Visual como físicamente en mi disco. Pero no quiero tener que aplicar cada cambio dos veces tanto en Visual como en mi disco. ¿Hay alguna manera de mostrar las carpetas reales, en las que guardo mis archivos en el disco, en Visual Solution Explorer (y no - "Mostrar todos los archivos" no hace eso, acabo de comprobar)?¿Carpetas reales en Visual Solution Explorer?

+0

Para mí, 'mostrar todos los archivos' funciona si el archivo del proyecto está en una carpeta principal de todos los archivos fuente, pero no si el archivo del proyecto está en su propia carpeta separada. – entheh

Respuesta

4

No - SE y el sistema de archivos guardan copias independientes de la información de estructura/jerarquía.

Normalmente deshabilito los filtros y coloco los archivos donde los quiero, de modo que las dos estructuras permanecen sincronizadas por defecto (de hecho, cualquier otra forma parece una locura si quieres tener algún tipo de organización de código fuente - I siempre agrupe los archivos para los componentes en carpetas separadas).

Luego (con filtros de movilidad reducida) ...

Si crea las carpetas en el Explorador de soluciones, y utiliza el menú contextual de esa carpeta a "Agregar nuevo elemento ..." o "Agregar elemento existente", entonces la estructura del disco reflejará el explorador de soluciones (los elementos existentes se copian en lugar de hacerlo desde donde residen actualmente para garantizar esto, lo que puede dar lugar a copias antiguas de archivos que quedan alrededor de su proyecto si lo agrega a la carpeta SE incorrecta). De lo contrario, normalmente solo si "agrega como enlace" VS colocará un elemento en una carpeta diferente en el SE de lo que aparece en el disco.

Para cosas ordenadas arriba, los enfoques son más fáciles (después de hacer una copia de seguridad por si acaso):

  • Abra la solución y los exploradores de archivos y de forma manual "diff" de ellos. Cualquier archivo que esté "mal" debe eliminarse de SE, moverse a la ubicación correcta del disco y luego agregarse a SE utilizando el menú contextual de la carpeta SE correcta.
  • Si no hay demasiadas carpetas, un enfoque más simple es simplemente eliminar todos los archivos del explorador de soluciones y luego agregarlos (una carpeta a la vez) al proyecto, asegurándose de crear los nombres correctos de las carpetas como usted ir y agregar desde el menú contextual de cada carpeta. Al reconstruir el SE desde cero, puede sincronizar con bastante rapidez los dos diseños, y esto a menudo puede ser más fácil que tratar de determinar dónde radican las diferencias.

Una vez que estén sincronizados, solo use el SE para administrar los archivos y tenga cuidado de agregar elementos utilizando el menú contextual de la carpeta correcta. Si mueve cosas en el disco, romperá los enlaces.

+1

Tenga en cuenta que esto solo se aplica a proyectos C/C++. Los proyectos de C# tienen una asignación de 1 a 1 de los archivos. –

+0

@Sebastiaan: Sí, con dos excepciones que puedo pensar: 1) cuando agrega archivos como "enlaces", no necesitan tener una asignación 1: 1 (pero estos se muestran con un icono de enlace obvio).2) El mapeo 1: 1 se aplica dentro de los proyectos, pero los proyectos mismos (dentro de una Solución) no necesitan tener un mapeo de ruta 1: 1. –

2

Si hace clic en 'mostrar todos los archivos', cambia el explorador de soluciones de mostrar un filtro virtual de archivos a un filtro físico de archivos.

+2

OP ha declarado en la pregunta que esta solución no funcionó. – psubsee2003

0

Por filtros, creo que se refiere a las Carpetas de soluciones. Esas son carpetas virtuales que no tienen relación con el sistema de archivos. Un truco que hice fue hacer un proyecto de desechado. Los elementos agregados a las carpetas del proyecto mantienen sus relaciones. Es un truco, pero funciona. Si alguien conoce una forma menos hacky de hacerlo, me gustaría saberlo también.

Cuestiones relacionadas