私は他のアプリで使用するライブラリを開発しています。このライブラリには、NLog のおかげで多くのデバッグ ステートメントとログ ステートメントが含まれています。
リリース モードに切り替えるときに、NLog.dll への参照を除外することはできますか?
乾杯、
私は他のアプリで使用するライブラリを開発しています。このライブラリには、NLog のおかげで多くのデバッグ ステートメントとログ ステートメントが含まれています。
リリース モードに切り替えるときに、NLog.dll への参照を除外することはできますか?
乾杯、
csproj ファイルを手動で編集して、次のようにすることができます。
<Reference Include="NLog" Condition="'$(Configuration)' == 'Debug'" />
これは、デバッグでそのアセンブリを参照するだけです。ただし、構成を変更しても、この動作は Visual Studio の参照リストに反映されないため、これを頻繁に行うことはお勧めしません。ただし、コンパイル時に機能します
私が知っている唯一の方法は、参照を完全に取り出し、リフレクションを介してアセンブリを呼び出すことです。次に、アセンブリが読み込まれた場合にのみログに記録する必要があります。
これを行う良い方法が思いつきません。NLog.dll のスタブ リファレンスを作成した場合を除きます。コードで参照を使用しているため、リリースでそれを削除する方法がわかりません。
おそらく今では遅すぎるかもしれませんが、将来的には、NLog.dll をラップするクラスを作成し、それを 1 か所だけ変更して、実際にリリース バージョンにログインしないようにすることができます。または、ある種の旗を持っています。
その DLL からコードが使用されないことが確実な場合、参照を削除する理由はありません。その場合、単純に DLL を削除できます。
なぜそれをしたいのですか?
ログを停止する場合は、プログラムでログをオフにすることができます。パフォーマンスへの影響は最小限に抑えられます。(クロスプロセスをログに記録する場合でも、NLogで大きな成功を収めました。)
それ以外の場合は、上記のようにラップする必要があります。
-スコット