请教高手:我在Debug时没有设任何Breakpoint,所以按道理说应该两种运行方式是一致的。现在VS2010的C#中Debug运行很正常,但在外部运行Debug版编译的exe就会卡在某个地方,请问一下这种情况一般是因为什么原因?谢谢。

解决方案 »

  1.   

    是不是一边调试一边打开exe程序了?
    重新生成,再试试!
      

  2.   

    这个肯定没有。调试和打开exe文件时间是分开的,而且已经试过很多次,也rebuild了很多次了。
      

  3.   

    外部引用dll的时候,有没有设置复制到本地为True
      

  4.   

    描述很模糊...看看运行时的用户,运行VS的用户也就是Debug运行时的进程用户一般都是管理员帐号,基本没有安全性限制...
      

  5.   

    this.BeginInvoke(new Action<FormQuote.EnumProgessState, string>(formQuote.progress), FormQuote.EnumProgessState.OnQryInstrument, "测试完成.");其实查了一下,就是在打开exe文件时,运行到上面这条语句,它不会调用formQuote.progress(FormQuote.EnumProgessState.OnQryInstrument, "测试完成.")函数,而Debug时会很正常的调用。不知道是为什么。
      

  6.   

    我是以管理员账户登录Windows的,所以应该没有这个问题。
      

  7.   

    是否在debug目录下有程序调用的dll或文件
    而外部调用时exe同级目录没有dll或文件,前者即依赖项缺失“卡在某个地方”这句话描述不是很清楚
      

  8.   

    外部调用exe也是在debug目录调用的,需要的dll也都放在debug的Resource下了。
    卡在某个地方是:
    this.BeginInvoke(new Action<FormQuote.EnumProgessState, string>(formQuote.progress), FormQuote.EnumProgessState.OnQryInstrument, "测试完成.");
    语句执行到了,但没调用formQuote.progress(FormQuote.EnumProgessState.OnQryInstrument, "测试完成.")函数,而是卡住了。
      

  9.   

    外部引用dll或者exe的时候是需要复制到debug文件夹下的。
    一个解决方案,多个项目。还要调整项目的生成地址。
    如A程序需调用B程序,那么B项目的生成地址需要改为A的dubug下...
      

  10.   

    追问一下:是不是debug时VS2010就是调用debug目录下的exe文件来执行呢?