19

我正在开发一个用于其他应用程序的库,并且由于 NLog,这个库有很多调试和日志记录语句。

切换到发布模式时是否可以排除对 NLog.dll 的引用?

干杯,

4

5 回答 5

25

您可以手动编辑 csproj 文件,并执行以下操作:

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

这只使它在调试中引用该程序集。不过,我不建议经常这样做,因为当您更改配置时,此行为不会反映在 Visual Studio 的引用列表中。它在编译时确实有效

于 2009-05-13T21:49:20.600 回答
2

我知道的唯一方法是完全取出引用并通过反射调用程序集。然后,您应该仅在程序集加载时记录。

于 2008-11-04T01:19:03.200 回答
0

我想不出一个好的方法来做到这一点。除非您为 NLog.dll 编写了存根引用。由于您在代码中使用了引用,因此我看不出如何在发布中将其删除。

现在可能为时已晚,但将来您可以编写一个类来包装 NLog.dll,然后在一个地方更改它,这样它就不会真正登录发布版本。或者有某种标志。

于 2008-11-04T01:15:41.443 回答
-1

如果您确定不会使用该 DLL 中的任何代码,则没有理由删除引用。在这种情况下,您可以简单地删除 DLL。

于 2008-11-04T01:27:57.083 回答
-1

你为什么想这么做?

如果要停止记录,可以通过编程方式关闭记录。性能损失将是最小的。(即使在记录跨进程时,我在 NLog 方面也取得了巨大的成功。)

否则,您需要如上所述包装它。

-斯科特

于 2008-11-04T01:37:58.980 回答