Val*_*zub 7 .net debugging clr
我曾经相信,如果我们有一个Debug构建,它是否真的无关紧要:
一切都会一样.
然而,最近我遇到了两个不同的问题,它们明确表示在运行代码或调试代码时有些不同,即使代码版本应该是相同的.(即Fluent NHibernate无法在测试 和Npgsql的调试模式下从GAC加载MySql.Data - 不支持指定的方法)
我想知道.NET 4.0中这两者之间有什么区别?了解不同的东西可能有助于我解决我遇到的问题,因为我至少知道在哪些地方寻找可能导致错误的原因.当我将单元测试全部运行为绿色时,我不明白它,但是当我尝试调试它们时,我会抛出各种异常.
解决程序集解析问题的首选武器是fuslogvw.exe,它向您显示在何处查找程序集以及使用什么配置告诉 CLR 在何处查找程序集。
对于您遇到问题的组件类型,存在一种次要故障模式。这些数据库提供程序通常是托管包装器,它们依赖非托管 DLL 来完成工作。Windows 必须能够找到这些 DLL。如果它们没有复制到 PATH 上的目录或复制到与主 EXE 相同的文件夹中,那么这往往会失败。仔细阅读这些包装器的部署说明。