Pregunta

Estoy desarrollando una biblioteca para usar en otras aplicaciones y esta biblioteca tiene muchas declaraciones de depuración y registro gracias a NLog.

¿Es posible excluir la referencia a NLog.dll cuando cambio al modo de liberación?

Saludos,

¿Fue útil?

Solución

Puede editar manualmente el archivo csproj y hacer algo como esto:

<Reference Include="NLog" Condition="'$(Configuration)' == 'Debug'" />

Esto solo hace referencia a ese ensamblado en Debug. Sin embargo, no recomendaría hacer esto a menudo, porque este comportamiento no se refleja en la lista de referencias en Visual Studio cuando cambia la configuración. Sin embargo, funciona al compilar

Otros consejos

La única manera que sé es sacar la referencia por completo y llamar al ensamblaje mediante reflexión. Luego, solo debe iniciar sesión si se carga el ensamblaje.

No puedo pensar en una buena manera de hacer esto. A menos que tal vez haya escrito una referencia de código auxiliar para NLog.dll. Como está utilizando la referencia en su código, no veo cómo podría eliminarla en su versión.

Probablemente sea demasiado tarde ahora, pero en el futuro podría escribir una clase para envolver NLog.dll y luego simplemente cambiarla en un lugar para que no inicie sesión en la versión de lanzamiento. O tener algún tipo de bandera.

No hay ninguna razón para eliminar una referencia en caso de que esté seguro de que no se usará ningún código de esa DLL. En ese caso, simplemente puede eliminar DLL.

¿Por qué quieres hacer eso?

Si desea detener el registro, puede desactivarlo programáticamente. El éxito de rendimiento será mínimo. (He tenido un gran éxito con NLog incluso al registrar procesos cruzados).

De lo contrario, debe envolverlo como se describió anteriormente.

-Scott

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