Pregunta

Tengo un proyecto que utiliza log4net y trabaja muy bien en las máquinas de los desarrolladores. Cuando construimos, un paso en nuestros scripts de construcción llama la tarea AssemblyInfo para establecer los números y fechas de versión, etc. Pero el archivo AssemblyInfo también pierde la línea:

[assembly: XmlConfigurator (reloj = true)]

¿Hay alguna manera de tener la tarea AssemblyInfo no sobrescribir esa línea, o por el contrario, tener la tarea AssemblyInfo vuelva a insertar las que se alinean en el archivo (junto con la instrucción using apropiado?

¿Fue útil?

Solución

Bueno, pensar un poco diferente, usted no tiene que tener sólo un montaje de archivo de información.

Esto es cómo lo hacemos de una solución, cada proyecto tiene archivos de información 3 de montaje:

  1. AssemblyInfo.cs - Contiene Guid, AssemblyTitle, AssemblyDescription, y cualquier atributo de montaje específicos

  2. .
  3. ProductAssemblyInfo.cs - Contiene AssemblyProduct, AssemblyVersion y AssemblyFileVersion. De esta manera todos los conjuntos en una proporción producto / solución de la misma versión.

  4. CompanyAssemblyInfo.cs - Contiene AssemblyCompany, AssemblyCopyright, y cualquier atributo queremos que todos nuestros montajes para compartir

  5. .

Los productos 2 y 3 se hace referencia mediante "Agregar como enlace", de esta manera se comparten a partir del código fuente individual. Ahora, puede que no desee adoptar el mismo enfoque, pero que sin duda podría utilizar una estructura similar y colocar su XmlConfigurator en un archivo de información de montaje separado de sus detalles de la versión de montaje.

Otros consejos

En realidad se puede poner el log4net [assembly: ...] línea en cualquier archivo que se compila en el montaje. Muchas veces, que sólo hay que poner en el archivo .cs que tiene el método "principal", y funciona muy bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top