Escribo este código en una aplicación de consola orientada a .NET Framework 4 Client Profile.¿Por qué log4net 1.2.10 requiere System.Web?
this.container.AddFacility<LoggingFacility>(
f => f.LogUsing(LoggerImplementation.Log4net));
Cuando se ejecuta, falla con un error de conversión de tipo.
No se pudo convertir de 'Castle.Services.Logging.Log4netIntegration.Log4netFactory, Castle.Services.Logging.Log4netIntegration, Version = 2.5.1.0, Culture = neutral PublicKeyToken = 407dd0808d44fbdc' a System.Type - tal vez el tipo no pudo ser encontrado
Esto se debe a la asamblea Castle.Services.Logging.log4netIntegration no se copia en la carpeta de salida. Como una dependencia solo de tiempo de ejecución, esto no rompe la construcción.
Al observar el proceso de compilación, descubrí que no estaba copiando log4net o el conjunto de instalación de Castle porque dependen de System.Web que no está disponible en el Perfil del cliente. Cambiar al perfil estándar significa que esta dependencia está disponible y que se puede agregar la instalación.
¿Por qué se hace esto? ¿Qué diferencia hace que no apunte al perfil del cliente en una aplicación de consola diseñada para ser utilizada como una tarea programada en un servidor?
Gracias Bronumski. –
Acaba de descargar los últimos binarios (1.2.11) y contiene una versión compatible con 4.0 Client Profile en \ bin \ net-cp \ 4.0 \ release. ¡Lo probé y funciona como un encanto! – SvenG