es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utilizando una biblioteca de terceros que depende de NLog desde una aplicación .NET 6.

Según el título, tengo una biblioteca de terceros suministrada en forma de DLLs, estas DLLs tienen una dependencia de NLog.dll (4.3.5) que también se suministra. Cuando intento iniciar la biblioteca desde un cliente .NET 6, obtengo la siguiente excepción: “Método no encontrado: System.String System.AppDomainSetup.get_ConfigurationFile()”. Aparentemente, NLog está buscando un archivo de configuración que en el pasado estaría en el archivo App.config. Buscando en Internet, parece que se puede suministrar el archivo de configuración a través de una llamada a la API de NLog, pero no puedo hacer esto ya que no tengo acceso a la API subyacente. ¿Alguien sabe cómo hacer que esta configuración funcione?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hay varias formas diferentes de abordar este problema, dependiendo de los detalles de tu situación. Una posible solución es incluir un archivo App.config en tu proyecto cliente .NET 6, y especificar manualmente el archivo de configuración para NLog utilizando el siguiente código:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appsettings>
        <add key="NLog.config" value="ruta\a\tu\NLog.config"></add>
      </appsettings>
    </configuration>
    

    Otra opción es incluir la configuración de NLog directamente en tu código, utilizando la API de NLog. Para hacer esto, deberías agregar el archivo NLog.config a tu proyecto y asegurarte de que esté configurado para copiar en el directorio de salida. Luego, puedes usar el siguiente código para cargar la configuración en tiempo de ejecución:

    LogManager.Configuration = new XmlLoggingConfiguration("NLog.config");
    

    Si no tienes acceso a la API subyacente, podrías intentar crear un proyecto o DLL separado que haga referencia a la biblioteca de terceros y maneje la configuración de NLog. Este proyecto tendría su propio archivo App.config que especifique el archivo NLog.config, y sería responsable de configurar NLog antes de llamar a la biblioteca de terceros.

    En general, hay varias formas de solucionar el problema de que NLog busque un archivo de configuración al utilizar una biblioteca de terceros. El enfoque más adecuado dependerá de los detalles de tu proyecto y de tu acceso al código subyacente.

Comments are closed.