質問

私は他のアプリで使用するためのライブラリを開発していますが、このライブラリにはNLogのおかげで多くのデバッグおよびロギングステートメントがあります。

リリースモードに切り替えたときにNLog.dllへの参照を除外することは可能ですか?

乾杯、

役に立ちましたか?

解決

csprojファイルを手動で編集し、次のように実行できます。

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

これは、デバッグでそのアセンブリを参照するだけです。ただし、構成を変更してもこの動作はVisual Studioの参照リストに反映されないため、これを頻繁に行うことはお勧めしません。ただし、コンパイル時に機能します

他のヒント

私が知っている唯一の方法は、参照を完全に取り出し、リフレクションを介してアセンブリを呼び出すことです。次に、アセンブリがロードされた場合のみログに記録する必要があります。

これを行う良い方法は考えられません。多分、NLog.dllのスタブ参照を書いていない限り。コードで参照を使用しているため、リリースで参照を削除する方法がわかりません。

おそらく今では遅すぎますが、将来的には、NLog.dllをラップするクラスを作成し、それを1か所で変更して、実際にリリースバージョンにログインしないようにすることができます。または、何らかのフラグを立てます。

そのDLLからコードが使用されていないことが確実な場合、参照を削除する理由はありません。その場合は、単にDLLを削除できます。

なぜそれをしたいのですか?

ロギングを停止する場合、プログラムでロギングをオフにすることができます。パフォーマンスへの影響は最小限に抑えられます。 (クロスプロセスのログを記録する場合でも、NLogで大きな成功を収めました。)

それ以外の場合は、上記のようにラップする必要があります。

-Scott

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top