Release编译好的EXE文件直接运行结果不正确

问题描述

Debug直接VS运行,结果没问题Debug编译好的EXE运行,结果没有问题Release直接VS运行,结果没问题Release编译好的EXE运行,问题就出来了经过一番网络查询原因,加上自己将代码从空项目开始,逐行逐句加入全新的项目中,最终锁定三组语句的异常,三组语句都是访问数据库的,经过断点调试,正常运行,无异常。上下文中还有多处和这三组类似的语句,均无异样。只要这三组语句在程序中,都会影响一个计时器的运行,只要这三组注释掉,计时器正常运行!这三组(包括其他类似的地方)访问数据库都是使用的动软代码生成器,生成的Model、BLL、DAL文件,现在迷惑的是,这三处哪里出问题了!出了什么问题,Release编译好的EXE运行为什么就不能启动计时器了!

解决方案

解决方案二:
没人知道吗?
解决方案三:
被ifDEBUG或者Debug.Assert之类的调用了啊,看你说到了计时器,估计你是用了Debug.Assert,方法内部调用了计时方法,你应该把计时方法的调用写在Assert外面,用个临时变量接受,然后给Assert传入临时变量如果上面猜测错误,那就不知道了
解决方案四:
引用2楼starfd的回复:

被ifDEBUG或者Debug.Assert之类的调用了啊,看你说到了计时器,估计你是用了Debug.Assert,方法内部调用了计时方法,你应该把计时方法的调用写在Assert外面,用个临时变量接受,然后给Assert传入临时变量如果上面猜测错误,那就不知道了

计时器方法不变的情况下,注释掉三组语句,就可以正常了!好像不是你说的那个问题!不过还是先谢谢你!
解决方案五:
引用2楼starfd的回复:

被ifDEBUG或者Debug.Assert之类的调用了啊,看你说到了计时器,估计你是用了Debug.Assert,方法内部调用了计时方法,你应该把计时方法的调用写在Assert外面,用个临时变量接受,然后给Assert传入临时变量如果上面猜测错误,那就不知道了

我直接在主方法中new了一个System.Threading.Timer,只要没有A、B、C三组语句,这个计时器就能运行,如果有它们,就不能正常运行。我没有使用Debug.Assert去调用计时器。
解决方案六:
在没有代码,各种条件和环境说明的前提下,这个一般很难给出什么建议。

时间: 2024-10-26 06:10:59

Release编译好的EXE文件直接运行结果不正确的相关文章

python程序用pyinstaller打包成单个exe文件后运行出错

问题描述 python程序用pyinstaller打包成单个exe文件后运行出错 如题,我打包一个python程序,import 的包比较多,打包过程也没报错,用pyinstaller -D 打包为目录时程序可以执行,用-F打包成单个文件,运行就崩溃掉, warn*文件里这样的信息 missing module named unicodedata.ucd_3_2_0 - imported by unicodedata, stringprep, encodings.idna missing mod

c++-codeblocks可运行代码,而生成的exe文件不能运行

问题描述 codeblocks可运行代码,而生成的exe文件不能运行 用codeblocks能够运行的源代码(可以从固定路径下的文件读取信息),在bin/debug目录下找到生成的exe文件却显示打开文件失败这是怎么回事?求大神们指导 解决方案 linux ,unix 由执行权限的程序,才可以运行 如果跟着无关,可能是需要 输入文件,而相应的目录下没有

C#写的一个exe文件怎么运行时候检测用户是否安装了net2.0环境了呢,如果没有安装自动安装

问题描述 C#写的一个exe文件怎么运行时候检测用户是否安装了net2.0环境了呢,如果没有安装自动安装注意程序是可执行的不是安装包的. 解决方案 解决方案二:如果不是安装包的话就不行了,因为这个程序在没有装.Net的机器上不能运行,所以没办法去判断最好的就是做安装包,安装包可以自动判断另外也可以做一个非.net的程序,用它来进行判断,启动.net的程序也由它来完成解决方案三:不可能吧,没有.net环境程序都无法初始化.怎么可能执行其他操作那.用c语言,或者用bat都可以做到的解决方案四:可以安

C# debug下生成的exe文件的运行问题

问题描述 情况概述:VS2010编写的程序,debug文件夹中的exe可执行文件在装有XP的工控机上无法运行,点击之后,任务管理器会出现相关进程,但是持续1S左右即退出,窗体无法呈现相关情况:1能够正常运行的情况本机(win7,.netframework全系列均有安装,VS2010有安装)同事机器(XP,.NETframework全系列均有安装,无VS2010)2不能够正常运行的情况工控机(XP,.NETFramework全系列从2.0到4.0均有安装,无VS2010)3一点说明a,以上测试都是

电脑系统在双击EXE文件后无反应,重启或从休眠恢复后输入密码无法登录

故障现象: 升级Win10系统至周年更新版本(1607)后,可能会发现某些EXE文件无法运行,系统重启或休眠唤醒后,在登录界面输入密码无法登录,具体复现步骤如下:   1. 在Windows 10 1607版本操作系统中,下载任意EXE文件:   2. 双击运行EXE文件,当用户允许UAC 界面并输入密码后,系统并没有执行EXE文件:   3. 此时如果重启系统或休眠系统,在登录界面即使输入正确的密码也无法登录:   4. 再次重启系统可解决此问题.   适用范围:   - 适用于所有Lenov

vc-VC++6.0编译什么的都没有出错,无法运行exe文件

问题描述 VC++6.0编译什么的都没有出错,无法运行exe文件 如上点小叹号无法运行,debug文件夹找到生成的exe文件,点击也无法运行,会闪退 解决方案 那个return 前面加上getcher():函数啊 解决方案二: 闪退,先要分析是执行结束了,如:console 程序,还是出现执行异常引起闪退 最直接的方法是用 VC6.0 进行调试,如果 VC6.0 没有报任何错误,就有可能是 console 程序执行结束了. 解决方案三: 是不是程序执行完了,退出了,程序最后加一个system("

dll文件缺失-运行单个EXE文件提示msvcp120d.dll缺失

问题描述 运行单个EXE文件提示msvcp120d.dll缺失 RT,文件我去下载了,也在同学电脑拉了过来,但注册老是失败,提示说请确保二进制储存在指定的路径中什么的 解决方案 使用vs2013编译的vc代码,在其他机器上运行时需要安装vc2013运行库.如果没有vc运行库,需要将 C:Program Files (x86)Microsoft Visual Studio 12.0VCredistDebug_NonRedistx86Microsoft.VC120.DebugCRT(Debug) 或

编译asp应用程序成为exe文件

编译|程序 使用 NetBox 可以方便的将 asp 应用编译成为独立运行的执行程序,完全摆脱 iis 的束缚,在几乎所有的 Windows 版本上面直接运行,完全不需要考虑平台兼容性和对 asp 运行环境的要求.下面就是快速移植已有的 asp 应用的步骤. 一.创建 asp 运行环境首先创建一个空的目录,在你喜欢的位置,假设是 d:websvr.将 netbox.exe 复制到这个目录,然后在目录中创建一个文件:main.box,编辑其内容为: Dim httpd Shell.Service.

编译自己的资源文件编辑器(reseditor.exe)

编译 vs.net2003 本身带了一个资源文件编辑软件,但默认没有编绎,不能使用.下面是我编绎这个工具的过程: 1.找到reseditor这个目录.一般在"Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Samples\Tutorials\resourcesandlocalization\reseditor" 2.reseditor目录中只有build.bat批处理文件.没有编绎C#源程序需要的csc.exe文件.我用