我正在尝试从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或其他任何令人不安)的断点决定实际识别它们的工作。那么为什么在地球上做一些线而不是其他线只是拒绝调试!
我在这里搜索过,大多数答案都涉及优化(不是)或运行两个工作室副本(不是这样)。
答案 0 :(得分:0)
终于解决了。答案当然是CRM是一堆......
正在运行的代码不是已部署到crm服务器的代码。尽管服务器上只有一个版本的DLL,并且它与开发系统上的版本相同,但它不是在服务器上运行的代码版本。 CRM运行的代码似乎是来自DLL的代码或来自数据库的副本,它不一定与DLL中的副本相匹配。无论出于何种原因,即使重新部署了代码,CRM似乎仍然希望从数据库中获取旧副本。为了稳定除了部署代码之外,还需要通过插件注册工具重新注册。
(这花了很长时间才找到,因为我认为CRM会让我觉得什么是不诚实的,最好的解决方案就是用CRM以外的东西重写应用程序)