returns name documentacion c# .net compiler-construction building

c# - name - ¿No deberías tratar la carpeta bin como transitoria?



param name c# (4)

Siempre me he enseñado a mí mismo ya otros a pensar que la carpeta bin es transitoria.

Es decir, deberías poder eliminarlo y la próxima vez que lo reconstruyas se recreará y todas las referencias se copiarán en él sin ninguna molestia, y no podrás poner todos los huevos en una sola canasta. O, en este caso, no coloque todas las DLL requeridas directamente en la carpeta bin. Tenerlos en otro lugar y simplemente referenciarlos.

He visto a gente caer cuando ponen dlls directamente en la carpeta bin y hacen referencia a ellos allí. Así que trato de evitar esto y pongo todas mis dlls requeridas en una carpeta llamada Refs y agrego referencias a las dlls allí. En el momento de la compilación se copiarán en la carpeta bin de todos modos.

¿Estoy loco? ¿Es esto demasiado cuidadoso? ¿sentido común?

¿Qué es la mejor práctica en este escenario?

Aclamaciones,

- Lee

ACTUALIZACIÓN: Resulta que no estoy loco

Saludos chicos que han recogido en algunos puntos que olvidé mencionar.

Principalmente

  • No verificando la carpeta bin en el control de código fuente

Creo que la carpeta bin es transitoria, es un lugar para que la aplicación compilada funcione.

Colocamos cualquier asamblea externa en un directorio llamado Asambleas. Muchos otros usan un directorio llamado lib. Esto separa la idea de algo que se necesita para compilar la aplicación desde la propia aplicación compilada.


No tengo idea de si estás loco, pero seguimos las mismas prácticas en el último lugar donde trabajé y las llevé a mi propio trabajo. Las carpetas / bin y / obj están fuera del control de versiones y algo que nunca toco. Básicamente, no existen en lo que a mí respecta durante el desarrollo. Todos los archivos DLL incluidos se encuentran en otra carpeta y están referenciados.


No, esto tiene sentido y es una práctica que yo mismo implemento en proyectos personales. Cualquier cosa debajo de la carpeta bin debe ser tratada como propiedad del entorno msbuild / Visual Studio.

Si bien ambos tienen mucho cuidado de eliminar solo las salidas que conocen, es posible que el usuario no entienda completamente qué es la salida de compilación y copie sobre una salida de compilación y, en consecuencia, la borre durante una operación de estilo "Limpio". También es posible que otras herramientas sean más agresivas aquí en la limpieza de archivos DLL. Yo mismo tiendo a atacar el directorio bin de vez en cuando si creo que el proceso de compilación está analizando datos obsoletos.

Además, tener una ubicación de referencia le brinda un lugar único para actualizar las referencias de una colección de proyectos dentro de una solución. Para mí es una construcción muy natural.


Así es, no desea colocar las dlls referenciadas en la carpeta bin . Si está utilizando el control de versiones, las carpetas bin y obj siempre deben estar completamente excluidas.

Todas las dlls a las que se hace referencia deben incluirse en el control de versiones, preferiblemente en un subdirectorio separado bajo el trunk su proyecto, de modo que todos tengan todas las fuentes y referencias necesarias para cada reconstrucción limpia. bin carpeta bin debe ser fácilmente recreada desde cero.

Eso es algo que creo que la mayoría de la gente esperará cuando revise su fuente.

También incluimos un archivo _READ_ME.txt en la raíz del proyecto, que indica información adicional sobre las herramientas y las cosas necesarias para construir el proyecto por lotes ( nant , perl , etc.), por lo que puede haber algunas diferencias específicas de vez en cuando. Pero nunca sorprende de este tipo.