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