Domanda

Sto sviluppando una libreria da utilizzare in altre app e questa libreria ha molte dichiarazioni di debug e registrazione grazie a NLog.

È possibile escludere il riferimento a NLog.dll quando si passa alla modalità di rilascio?

Saluti,

È stato utile?

Soluzione

Puoi modificare manualmente il file csproj e fare qualcosa del genere:

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

Questo fa solo riferimento a quell'assembly in Debug. Non consiglierei di farlo spesso, perché questo comportamento non si riflette nell'elenco dei riferimenti in Visual Studio quando si modifica la configurazione. Funziona durante la compilazione però

Altri suggerimenti

L'unico modo che conosco è prendere completamente il riferimento e chiamare l'assemblea tramite la riflessione. Quindi, è necessario accedere solo se l'assembly viene caricato.

Non riesco a pensare a un buon modo per farlo. A meno che tu non abbia scritto un riferimento di stub per NLog.dll. Dal momento che stai usando il riferimento nel tuo codice, non vedo come potresti semplicemente rimuoverlo nella tua versione.

Probabilmente troppo tardi ora, ma in futuro potresti scrivere una classe per avvolgere NLog.dll e poi cambiarlo in un posto in modo che non acceda effettivamente alla versione di rilascio. O hai una specie di bandiera.

Non vi è alcun motivo per rimuovere un riferimento nel caso in cui si sia certi che non verrà utilizzato alcun codice da quella DLL. In tal caso, puoi semplicemente rimuovere la DLL.

Perché vorresti farlo?

Se si desidera interrompere la registrazione, è possibile disattivarla a livello di programmazione. Il successo delle prestazioni sarà minimo. (Ho avuto un grande successo con NLog anche durante la registrazione di processi incrociati.)

Altrimenti, devi avvolgerlo come descritto sopra.

-Scott

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top