【问题标题】:C#: Debug.Assert() in Release-Build-DLL seems to be activated by Debug-Build-ProjectC#:Release-Build-DL​​L 中的 Debug.Assert() 似乎由 Debug-Build-Project 激活
【发布时间】:2017-03-28 10:52:05
【问题描述】:

我有一个包含大量 Debug.Assert() 调用的 DLL。 我已将此 DLL 构建为 Release,因此 Assert 未处于活动状态(我用一个小测试程序检查了这一点)。 现在我在一个调试构建的软件项目中使用这个 DLL,由于某种原因,来自 DLL 的断言再次处于活动状态。 项目的 DEBUG 定义是否会重新激活 DLL 中的断言? (VisualStudio 2013)

【问题讨论】:

    标签: c# dll assert


    【解决方案1】:

    documentation 声明:

    当 C# 编译器遇到 #if 指令,最后是 #endif 指令时,只有定义了指定的符号,它才会编译指令之间的代码。

    考虑到这一点,我想说你不应该看到这些断言,因为在发布模式下编译时,代码应该被忽略了。

    您可以尝试反编译您的发布程序集,看看是否生成了代码。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 2019-03-16
    相关资源
    最近更新 更多