0

我正在尝试从 VS 2010 在 CRM 2011 中开发一个解决方案。当它工作时它有点好(CRM 是一条狗,但代码工作)。但每隔一段时间,它就会把玩具从婴儿车里扔出去,拒绝调试。我目前遇到的问题是它在我的例程中的某些行上抗议“公共语言运行时无法设置断点”。例如

private static TimeSpan FindWorkTime(DateTime T1, DateTime T2, Boolean[, ,] supporthours)
{
    TimeSpan SlotDuration = new TimeSpan(0, 30, 0);
    TimeSpan fwt = new TimeSpan(0); // This I can put a break point on
    if (T2 > T1)                    // This tells me the CLR can not set a breakpoint!
    {
        DateTime T1S = servicecase.FindTimeSlotStart(T1);
        DateTime T2S = servicecase.FindTimeSlotStart(T2);

代码未优化。工作室(或 CLR 或任何令人不安的东西)决定实际识别它们工作的断点。那么到底为什么有些行而不是其他行只是拒绝调试!

我在这里进行了搜索,大多数答案都涉及优化(不是打开)或运行两个工作室副本(不是这种情况)。

4

1 回答 1

0

终于解决了。答案当然是CRM是一堆...

正在运行的代码不是已部署到 crm 服务器的代码。即使服务器上只有一个 DLL 版本,并且它与开发系统上的版本相同,但它并不是在服务器上运行的代码版本。CRM 运行的代码看起来要么是来自 DLL 的代码,要么是来自数据库的副本,它不一定与 DLL 中的代码相匹配。无论出于何种原因,即使重新部署了代码,CRM 似乎仍希望从数据库中获取旧副本。除了部署代码之外,为了保持稳定,还需要通过他们的插件注册工具重新注册。

(这花了很长时间才找到,因为我认为 CRM 会对我撒谎说什么是不诚实的,最好的解决方案是用 CRM 以外的东西重写应用程序)

于 2013-07-17T14:32:30.893 回答