2010-04-08 17 views

Respuesta

10

Sí, normalmente hago esto todo el tiempo. Como dijo Harry, reduce el uso de espacio en el disco. Eso realmente no es un gran problema para mí, ya que el espacio en el disco es increíblemente barato, pero podría ser una preocupación para usted. La verdadera razón por la que lo hago es para reflejar mejor cómo se verá la implementación. La mejor manera de hacerlo es tener un property sheet que modifique el directorio de salida a $(SolutionDir)/build/bin. Después de esto, configuré el directorio de trabajo como $(SolutionDir)/build, que es toda la estructura que es idéntica a lo que se desplegaría, en lugar de tenerla distribuida entre los diversos directorios del proyecto.

build 
|-- bin 
| |-- foo.exe 
| |-- libfoo.dll 
| `-- libbar.dll 
|-- plugins 
| |-- extender.py 
| `-- something.lua 
`-- skins 
    |-- default.skin 
    `-- white-and-gold.skin 

En general, tener un directorio aislado para las cosas que se crean (en lugar de las fuentes) es algo bueno. Facilita la escritura de pasos de compilación personalizados, ya que sabe dónde estará la salida final y facilita la integración con su sistema de control de versiones, ya que puede configurarlo para ignorar todo el directorio, en lugar de andar configurando ignore para todos .exe, .lib, .so , .dll y lo que sea para cada pequeño directorio.

+0

Al igual que una nota, mi verdadero objetivo era más sobre el tiempo que tarda Visual Studio para copiar los mismos archivos con dependencias complejas: la cantidad de espacio en disco era algo auxiliar. Pero supongo que la forma en que redacté mi respuesta dio el mismo peso a cada una. –

2

La razón principal por la que cambio mi directorio de salida es reducir el número de ensamblados duplicados y la cantidad de copias de archivos que tiene que hacer Visual Studio. Si el proyecto A hace referencia al proyecto B, y el proyecto C hace referencia al proyecto A y B, Studio debe construir A, copiar A en B y construir B, luego copiar A y B en C y construir C. Ahora tiene 3 copias del ensamblaje A, dos copias del ensamblado B y una de C. Señalando la salida a un solo directorio, Visual Studio simplemente construye A, luego B, luego C. Una copia de cada uno. Puede imaginar cuánto espacio de disco y tiempo se consume para una compilación a medida que crece la cantidad de proyectos y la complejidad de las dependencias.

0

Como ejemplo tengo un updater.exe que se supone que se distribuirá con un "otro" programa. Así que establecí la ruta de compilación para la ruta de compilación de los "otros" programas. De esa forma, sé que siempre tengo el último "updater.exe" donde debería estar.

Eso es solo una razón.

Cuestiones relacionadas