2010-12-23 39 views
19

Soy un desarrollador de Java y acabo de empezar a aprender C# para desarrollar un proyecto de pareja. Me complace ver que muchos frameworks Java con los que estoy acostumbrado (log4j, ant, hibernate, etc.) tienen sus versiones .net (log4net, nant, nhibernate).Problema de dependencia del ensamblado de referencia de Log4net

que acaba de crear un proyecto y tratado de poner log4net referencia de ensamblado en ella, pero estoy teniendo la siguiente advertencia (seguido de 4 errores informando falta de reconocimiento de espacio de nombres log4net y clases):

El referenciado asamblea "log4net" no se pudo resolver, ya que tiene una dependencia en "System.Web, versión = 4.0.0.0, Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a", que no es en el momento son objeto marco ". NETFramework, Version = v4.0, Profile = Client ". Por favor, elimine las referencias a los ensamblajes que no estén en el marco específico o considere redirigir su proyecto.

He añadido referencia a System.Web.ApplicationServices y System.Web.Services pero no funciona. Cualquier ayuda para resolver este problema de dependencia será muy apreciada.

Gracias

Respuesta

28

ACTUALIZACIÓN:

Si sigue recibiendo este error, estás usando una versión fuera de la fecha de log4net y se debe considerar la actualización a la current version, lo que hace no requiere el marco completo de .NET 4.0. Gracias a @Philippe para señalar esto en un comentario.


Su proyecto hace referencia a .NET 4.0 perfil de cliente que no incluye System.Web; realmente necesita hacer referencia al marco completo .

Consulte How To: Target a Specific .NET Framework Version or Profile en MSDN para obtener instrucciones.

  1. En Visual Studio, abra el proyecto que desea cambiar.
  2. Haga clic con el botón derecho en el proyecto en el Explorador de soluciones y luego haga clic en Propiedades.
  3. En el Diseñador de proyectos, busque la lista Marco de destino, como se muestra a continuación.

    • Para proyectos de Visual Basic, haga clic en la ficha Compilar y luego en Opciones de compilación avanzada. La lista del Marco de Target se encuentra en el cuadro de diálogo Configuración del Compilador Avanzado .
    • Para proyectos de Visual C#, la lista de Marco de destino se encuentra en la pestaña Aplicación del Diseñador de proyectos . Para obtener más información, consulte Página de la aplicación, Diseñador de proyectos (C#).
    • Para proyectos de Visual F #, la lista de Marco de destino se encuentra en la pestaña Aplicación del Diseñador de proyectos .
  4. En la lista Marco de destino, seleccione la versión .NET Framework o el perfil que desee. Cuando hace clic en OK, el proyecto se descarga y luego se recarga en el entorno de desarrollo integrado (IDE). El proyecto ahora apunta a .NET Framework versión que acaba de seleccionar.

Posiblemente también de interés es Troubleshooting .NET Framework Targeting Errors.

+0

Esto fue muy útil. El primer proyecto que creé después de instalar Visual Studio 2010 configuró el destino para el perfil del cliente de manera predeterminada – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

Si la orientación del perfil del cliente era válida, las respuestas de Maciej y 101100 son mejores: use la versión de log4net que no depende de system.web (1.2 .11). – Philippe

+0

Gracias por comentar, @Philippe - He actualizado la respuesta. –

6

Establezca su proyecto para orientar el ".NET Framework 4.0", no el ".Net Framework Framework Client Profile" en el cuadro de diálogo de propiedades del proyecto.

1

Solo una pequeña actualización. Este problema se ha registrado hace casi 3 años y se solucionó solo este mes. Así que la próxima versión de log4net (después de 1.2.10) debería estar bien para trabajar con marcos de perfil de cliente.

https://issues.apache.org/jira/browse/LOG4NET-174

0

Como referencia para los futuros usuarios:

No olvide también INSTALAR el marco a apuntar! (Yo mismo, pensé que debido a que todas las carpetas (v4.0x, v2.0X, etc.) estaban allí, tenía todas las estructuras. ¡NO! Resulta que solo tenía el .NET 4.0 perfil de cliente instalado en mi sistema y no pudo encontrar el System.Web, a pesar de que el marco adecuado fue blanco

de todos modos, su descarga .NET Framework necesitamos en este caso. .NET Frameworks Microsoft Downloads

1

Si usted está recibiendo este error con la versión 1.2.11 y no desea cambiar el marco de trabajo de su proyecto, simplemente instale la versión para el perfil del cliente. Esta se encuentra en la carpeta net-cp en la distribución binaria.

Cuestiones relacionadas