C# 获取发布版本中System.Diagnostics.Debug.Assert()的行为?

C# 获取发布版本中System.Diagnostics.Debug.Assert()的行为?,c#,assert,C#,Assert,我想在特定情况下检测并报告bug,使用与Debug.Assert()相同的行为,但在发布版本中。我该怎么做呢?您应该能够使用Trace.Assert() 发件人: 如果要在发布版本中执行断言,请使用Trace.Assert方法。Assert方法仅在调试版本中有效 您不能打开跟踪并执行跟踪吗?您可以在发布模式下使用条件跟踪。另外,您可以使用log4net实现一些有条件的日志记录,您可以在仍然启用发布优化的情况下手动添加调试常量 在项目设置的Build选项卡中,只需选中启用DEBUG常量的复选框

我想在特定情况下检测并报告bug,使用与
Debug.Assert()
相同的行为,但在发布版本中。我该怎么做呢?

您应该能够使用
Trace.Assert()

发件人:

如果要在发布版本中执行断言,请使用Trace.Assert方法。Assert方法仅在调试版本中有效


您不能打开跟踪并执行跟踪吗?您可以在发布模式下使用条件跟踪。另外,您可以使用log4net实现一些有条件的日志记录,您可以在仍然启用发布优化的情况下手动添加调试常量

在项目设置的Build选项卡中,只需选中启用DEBUG常量的复选框

这允许所有具有(如)的函数仍在编译程序中运行


编辑:,如果可能,使用
跟踪。断言
。如果定义了常量
跟踪
,并且在发布版本中默认定义了该常量,则该函数将触发。这将确保您不会因为启用任何其他在代码中使用
\if DEBUG
[ConditionalAttribute(“DEBUG”)]
的代码而产生任何不可预见的副作用。

甚至比我的回答更好,我不知道
跟踪。断言
没有冒犯,但“微软C团队的前成员”怎么办(您的个人资料描述)不知道
Trace.Assert
?我不知道的事情列表非常、非常长。请看:虽然意图正好相反,但答案应该会给您提供所需的线索。