首页 - 新闻 - vs2010不能使用_vs2010 点击时应用程序无法正常启动(0xc000007b).请单击“确定”关闭应...

vs2010不能使用_vs2010 点击时应用程序无法正常启动(0xc000007b).请单击“确定”关闭应...

2023-09-23 18:34

之前开发环境:VS2008,ArcGIS9.3,ArcEngine9.3,Oracle10g,ArcSDE9.3,DevExpress9.3.4,Windows7 32位系统

新开发环境:VS2010,ArcGIS10.1,ArcEngine10.1,Oracle11gR2,ArcSDE10.1,DevExpress12.2,Windows7 64位系统(因为ArcSDE10.1只支持64位系统)

问题描述:因为开发环境改变,第一次使用VS2010,但是发现在运行过程中无法进行调试,必须中断运行进行代码修改(或者代码修改后重新运行系统才可生效),严重影响工作效率。

1、一开始以为是系统初始运行环境不对,因此采用下面方式进行了初始环境的重新配置(未解决)。

重新配置初始环境的方法:

开始菜单打开:Microsoft Visual Studio 2010 -> Visual Studio Tools -> Visual Studio 2010 命令提示

在窗口中输入:devenv /resetuserdata

重启vs进行初始环境配置选择。

2、从网上查找相关问题解决方法(未解决)。

查看结果是和 “工具->选项->调试->编辑并继续->启用编辑并继续”以及“工具->选项->调试->常规->一个进程中断则中断所有进程”按钮有关,但是我的这两个按钮处于选中状态,都是正常状态。当去掉“启用编辑并继续”选项时,不弹出上面的问题提示(提示此源文件已更改,不再与以下版本的文件匹配,该版本的文件用于生成所调试的应用程序),但是代码修改后重新运行系统才可生效,同样影响工作效率。

3、然后自己尝试其他的解决方案,最终问题得到解决。

(1)、将调试方式改为Debug方式(之前是Release方式)

(2)、调整各个类库的生成路径,将生成路径统一到某一目录下

(3)将生成平台更改为X86(重要)

点击配置管理器,弹出配置管理对话框。

选择活动解决方案平台为X86,如果没有该选项则通过新建选项进行新建,活动解决方案配置为Debug。

修改各个类库的生成平台

这样,使得问题最终得到解决。

如果还存在问题的话可以通过设置生成平台来看看(方法见下篇“VS2010无法修改资源文件”文章)

继续补充: 前几天我的vs2010突然不能调试了。后来找了很多的解决方案都不能解决问题。? 1. 删除所有的bin, debug? 2. 重建工程。? 3. 重新安装Silverlight的开发包。? 还是不行。? 最后是删除了? C:\Windows\www.gsm-guard.net\Framework\v4.0.30319\Temporary www.gsm-guard.net Files? 下面的所有临时文件。? 重新打开vs2010终于可以调试了。? 这个问题折腾了半天的时间。? VS2010 尝试运行项目时出错:无法启动调试? 有些人说是IntelliTrace的原因,但我这项根本就是关闭的,? 两个解决方法:? 1) 打开项目属性,选择调试选项卡,将“启用非托管代码调试”一项钩上。? 2) 打开项目属性,选择调试选项卡,将“启用Visual Studio宿主进程“一项钩掉。?

过完年回来,更新完系统补丁后。发下VS2010 中原先添加头注释的宏命令(Macros)不能使用。遂在网上寻找解决方法,功夫不负有心人,找到了这篇文章:http://www.gsm-guard.net/2014/02/13/visual-studio-2010-macros-stop-working-after-february-2014-windows-update/

原因:?2014 年 2 月 11 日 Windows 更新的安装,中断了 Visual Studio 2010 的宏功能。宏功能既不运行也不报错。更具体地说,它是重要更新?MS14-009?“ .NET Framework 中的漏洞可能允许特权提升 (2916607)” 中断了宏功能。更具体地说,它是次更新的特权提升部分。

解决方法如下:

方法一:卸载已经安装的系统更新补丁(如下图):

方法二:修改配置文件(针对64位)(修改文件如下):

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsmsvr10.exe.config"

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv10.exe.config"

"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe.config"

在配置文件的

??

后面添加

即可(重启VS2010):

如果安装的是VS2008,则修改的文件为:

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsmsvr.exe.config"

"C:\Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv\vsaenv.exe.config"

"C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe.config"

本人使用了第二种方法,成功解决问题。

后记:

二月二十五号,?微软发布 KB2934830"反射类型可能不工作通过 DCOM 安全公告 MS14 009″ 从安装安全更新后进行封送处理。此外,Microsoft Visual Studio 中的宏功能可能也无法按预期正常运行。

适用于 .NET Framework 的安全公告?MS14-009?将阻止反射类型的封送处理。阻止的类型包括以下几种以及由此派生的所有类型。

System.TypeSystem.Reflection.AssemblySystem.Reflection.MemberInfoSystem.Reflection.ModuleSystem.Reflection.MethodBodySystem.Reflection.ParameterInfoSystem.Reflection.TypeInfoSystem.Reflection.MethodInfoSystem.Reflection.FieldInfo

若要安全还原 Visual Studio 宏的功能,请根据系统中安装的 Visual Studio 版本更新以下应用程序配置文件之一。

最简单快捷的解决方法如下:

版本 文件夹 文件名 Visual Studio 2005 Service Pack 1 (SP1) \Program Files (x86)\Common Files\Microsoft Shared\VSA\8.0\VsaEnv Vsmsvr.exe.config Visual Studio 2008 \Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv Vsmsvr.exe.config Visual Studio 2010 \Program Files (x86)\Common Files\Microsoft Shared\VSA\9.0\VsaEnv Vsmsvr10.exe.config

注意

?对于 32 位安装,路径位于 \Program Files\ 下。

对于所有受影响的 Visual Studio 版本,配置文件的修改过程均相同。您需要在 部分中添加?

AllowDComReflection

?开关,如下所示:?

此更新会阻止反射类型离开托管代码,但未阻止它们进入托管代码。因此,在大多数情况下,您只需要在客户端设置配置开关。您应仅将此配置开关用于那些需要设置该开关的应用程序。

昨天做项目的时候,在安装一个win32的应用程序后再次启动vs2010时发现报错,就是如下的错误:

?哎呀,我的天,关键时刻就打不开了。这么怎么办呢。赶紧去搜解决办法。

1.使用Directx修复。(修复了180个左右的dll文件,但是没有解决我的问题。。)

2.卸载,重新安装vs2010。(依然不起作用。因为根本原因不在程序这里。)

3.我继续查找方法。最后确定了问题的所在。我的vs2010缺少了正确版本的dll文件msvcp100.dll,msvcr100.dll。??

在我的电脑下C:\Windows\SysWOW64\msvcp100.dll,msvcr100.dll这两个文件竟然是当前的日期。赶紧看了下版本。竟然是64位的dll。我想起来。为了做32位系统的项目。我替换了几个dll版本。(有的同学会疑惑,C:\Windows\SysWOW64文件夹下怎么会是32位系统文件版本呢。)

因为在64位系统上,System32里面的文件都是64位的,而SysWOW64里面的却是32位。 而在32位系统上,都没有SysWOW64这个文件夹。只有System32这个文件夹,这个时候,那里才是32位的系统。

使用工具赶紧查看下dll的版本,C:\Windows\SysWOW64\msvcp100.dll。这个竟然是64位的。赶紧把出错的dll替换为32位的。问题得到解决。

(不知道怎么查看dll版本的。可以参照一下方法打开。)

?打开支输入,dumpbin.exe /headers C:\Windows\SysWOW64\msvcp100.dll

? ? ? ? ? ? ? ? ? ? ? ? ? ? 命令? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?查看的dll

查看结果:

?再看一个64位的文件。去C:\Windows\System32\下随便查找一下。

总结一下:应用程序无法正常启动(0xc000007b).请单击“确定”关闭应用程序.

我的这个问题是vs2010没有找到正确版本的dll文件导致。同时在查找问的时候也学习到了C:\Windows\System32\存放的是64位dll文件的地方。

C:\Windows\SysWOW64\存放的是32位dll文件地方。