2013-07-16 59 views
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或任何令人不快的事情)决定实际认识到它们的工作的断点。那么为什么在地球上做了一些线,而不是其他人拒绝调试!

我在这里搜索过,大部分答案都涉及到优化(而不是)或者运行两个工作室(不是这种情况)。

+0

嗨贾维斯,如果您发布[下面的答案](http://stackoverflow.com/a/17702626/241211),则可以要求将该用户帐户[合并到您自己的帐户中](http://stackoverflow.com/帮助/合并账户)。 – Michael

回答

0

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

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

(这花了太长时间才找到,因为我认为CRM会骗我,什么是不能说实话最好的解决办法是比CRM以外的东西来重写应用程序)

相关问题