.net - Debug build 在调试和不调试的情况下运行有什么不同?

标签 .net debugging clr

我曾经相信如果我们得到一个 Debug构建它是否真的无关紧要:

  • 我们运行了它。
  • 或者我们调试它。

  • 一切都会一样。

    然而,最近我遇到了 2 个不同的问题,很明显,当代码刚运行时,或者在调试时,即使代码版本应该是相同的,也有一些不同。
    (即Fluent NHibernate cannot load MySql.Data from GAC in debug mode of a test
    Npgsql - Specified method is not supported )

    我想知道 .NET 4.0 中这两者之间的区别是什么?了解不同之处可能会帮助我解决我遇到的问题,因为我至少会知道在这些不同情况下在哪里寻找错误的可能原因。当我运行单元测试时,我不明白它的全部绿色,但是当我尝试调试它们时,我抛出了各种异常..

    最佳答案

    装配解析问题的首选武器是 fuslogvw.exe ,它会显示它在何处查找程序集以及正在使用什么配置来告诉 CLR 在哪里可以找到程序集。

    对于您遇到问题的组件类型,存在次要故障模式。这些 dbase 提供程序通常是托管包装器,它们依赖于非托管 DLL 来完成工作。 Windows 必须能够找到这些 DLL。如果它们没有复制到 PATH 上的目录或复制到与主 EXE 相同的文件夹中,这往往会失败。仔细阅读这些包装器的部署说明。

    关于.net - Debug build 在调试和不调试的情况下运行有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7290497/

    相关文章:

    c# - 结构的不变性

    c# - 从字符串中删除字母字符和空格

    mysql - 如何调试 MySQL 错误 1242(子查询返回超过 1 行)?

    c# - 为什么 C# 在向上转换后将实例的先前非 null 成员视为 null?

    .net - 解决 MSB3247 - 发现同一依赖程序集的不同版本之间存在冲突

    c# - 在不声明模型类的情况下解析 JSON

    c# - 使用 LINQ 的 SQL 表行总和?

    ios - 将多个数组相加形成一个最终数组。调试问题,Swift Xcode

    javascript - 查看 html 节点上的所有打开事件 - Javascript

    c# - 通过 SQL CLR 验证 NT 用户