(个人向)C# winForm程序启动时报错:应用程序无法正常启动(0xc000007b)

1.我的开发环境:windows 10 64bit、visual studio 2017,在本机上运行没有问题,但是在别人电脑上运行报错"应用程序无法正常启动(0xc000007b)"

2.要运行改程序的操作系统有windows xp、windows 7 32bit和windows 7 64bit,由于windows xp安装不了.net framework 4.5及以上版本,所以我在编译程序的时候将Target Framework设置为了4.0,将Platform target设置为x86,如下图:
(个人向)C# winForm程序启动时报错:应用程序无法正常启动(0xc000007b)_第1张图片(个人向)C# winForm程序启动时报错:应用程序无法正常启动(0xc000007b)_第2张图片
3.但,Solution Platforms却是默认的Any CPU,如下图:
(个人向)C# winForm程序启动时报错:应用程序无法正常启动(0xc000007b)_第3张图片
4.以上设置不能编译的程序不能运行在windows 7 32bit,需要将Solution Platforms也改为x86,如下图:
在这里插入图片描述

5.但是在windows 7 32bit计算机上运行却报错“应用程序无法正常启动(0xc000007b)”,可能由于该机器年老失修并且处于一个很大局域网中,我只能认为它中毒了!(“众所周知”C#的程序防病毒能力较差)

6.所以有了一个小想法:将exe文件改装成dat文件,用批处理程序以exe文件格式运行该dat文件,下面是批处理代码与目录结构:

set taskname=SerialPortClient.dat
tasklist|find /i "%taskname%" ||goto :run
taskkill /f /im "%taskname%"
goto :run
:run
cacls %~dp0SerialPortClient.dat /E /G everyone:F
assoc.dat=exefile
start "" %~dp0SerialPortClient.dat
assoc.dat=file

(个人向)C# winForm程序启动时报错:应用程序无法正常启动(0xc000007b)_第4张图片

7.至此,程序总算是运行起来了,但是!为何我修改的exe.config文件中的配置不起作用呢(程序中我使用了exe.config配置文件的配置作为运行参数),这是由于,exe.config需要改成dat.config!!!!
(个人向)C# winForm程序启动时报错:应用程序无法正常启动(0xc000007b)_第5张图片

8.还需要注意的是,如果需要用管理员身份运行dat(也就是改装好的exe),只需要用管理员身份运行bat就好啦(要使用kernel32.dll下的static extern bool SetLocalTime(ref SYSTEMTIME time)函数,必须使用管理员身份运行才可以设置系统时间)!!

你可能感兴趣的:(dat,bat,0xc000007b,winform,solution,platforms,C#,winform)