Visual studio 2010 错误MSB6006:“引用”;mt.exe“;以代码31退出
我今天在将VS2008解决方案迁移到VS2010时遇到了这个问题。问题发生在以下任一情况下:Visual studio 2010 错误MSB6006:“引用”;mt.exe“;以代码31退出,visual-studio-2010,Visual Studio 2010,我今天在将VS2008解决方案迁移到VS2010时遇到了这个问题。问题发生在以下任一情况下: 重建解决方案 先清洁,然后构建解决方案 如果我在这两个版本之后进行第二次构建,问题就不会出现。使用谷歌,我真正想到的只是微软一年前的博客,他们说他们无法重现这个问题,或者说这个问题在未来的版本中得到了修复 我在这里找到了最好的东西: 在上面的文章中,它说问题与清单生成有关,解决方案是在链接器-->清单下的设置中关闭清单。我不需要这个项目的清单,但我仍然不满意 我已经解决了这个问题,我只想回答我自己的问题
我已经解决了这个问题,我只想回答我自己的问题,因为我没有在StackOverflow上发现这个特定错误(代码31)。在我的项目中,中间和输出目录设置为:
- 中间目录:$(配置)\
- 输出目录:$(SolutionDir)bin\$(配置)\
- ASM列表位置:$(IntDir)\
- 对象文件名:$(IntDir)\
- 程序数据库文件名:$(OutDir)\$(TargetName).pdb
- 清单文件:$(IntDir)$(TargetName)$(targetText).intermediate.Manifest
解决方法是从我的C/C++-->输出文件部分删除尾随的
\
(因为它已经是这些变量的一部分):
- ASM列表位置:$(IntDir)
- 对象文件名:$(IntDir)
- 程序数据库文件名:$(OutDir)$(TargetName).pdb
$(IntDir)
或$(OutDir)
与后面的\
一起使用似乎不会引起问题,即使这是一种不好的做法。我现在不记得我是不是偶然做的,或者是转换过程做的,但不管出于什么原因,它似乎把MT.exe搞砸了
我希望这对其他遇到这个问题的人有用。您的设置可能是不同的,但是考虑到它可能与未正确形成的文件名有关。< P>使用进程监视器和DbgVIEW,我发现MSM彭(微软安全要件)正在访问文件,就在MT.EXE想独占它的时候。排除开发目录解决了这个问题。 当然,这仍然是一个解决方案。我有一个用visual studio c 8.0编写的项目(*.sln)。它最近被迁移到VC10。当我选择“发布模式”时,它被成功编译。但如果选择“调试模式”,则会出现错误“MSB6006 mt.exe code 31” 我发现,在调试模式下,它使用了错误的子项目来启动。 在修复启动子项目之后,到目前为止一切正常 ----新身份---
这不能解决问题。它只是通过重建所有的系统来暂时解决问题。此外,还存在由迁移引起的其他断层。新项目中缺少了“resources.h”,并且“winres.rc”被缩短。尝试关闭Windows Defender(或其他可能与防病毒相关的软件)。已知Windows Defender会锁定文件,因为MT.EXE会在链接器完成后运行。WD跳到中间检查新生成的EXE,并将其锁定为MT.exe。< /P> < P>删除在“调试”文件夹中为我工作的“程序调试数据库”。
这个问题发生在我以高优先级运行调试文件夹中的.exe时 以管理员身份运行VS。它解决了我的问题。在我的情况下,这是一个龟的问题。从GIT存储库中删除Debug和Release文件夹解决了这个问题。考虑到这一点,我发现通过修复构建后命令行中的“-”字符可以解决这个问题。我相信一些错误的复制/粘贴操作已将连字符替换为破折号。警告:如果在包含当前尝试生成的*.exe的文件夹中打开Windows资源管理器窗口,也可能会发生此错误 例如:在Visual Studio中尝试生成代码的调试版本时,在
/…/MyProj/Debug/
中打开资源管理器
在意识到这一点之前,我对自己生气了约10分钟。检查您是否有任何类似AVG的防病毒软件。排除防病毒软件排除列表中的清单文件。查找MSB8012警告。对于C++输出值和链接器输出值,你可能有不同的输出规范。它只是通过重建所有的问题暂时地使问题消失。我还没有验证过,但它似乎是迄今为止最合理的解决方案)=我有这个问题,这就是原因。但是,我的解决方案是将输出目录和中间目录更改为未经防病毒扫描的目录(我在公司网络上,无法配置防病毒);这个解决方案有效!谢谢!:)同样的事情一夜之间发生在我们身上,完全出乎意料。现在不再有微软安全软件了,它现在被称为Windows Defender。它位于“设置->更新和安全->Windows Defender->添加排除”下。今天早上我也第一次看到同样的问题。打开Security Essentials并排除我的Visual Studio项目文件夹也为我修复了它。感谢您提供的解决方案。您是在Windows资源管理器中突出显示了目标文件,还是仅仅打开了该文件夹?它只是打开并放在那里。奇怪,我知道。我一关闭它就没有问题。^这:仅排除devenv.exe的进程或自己生成的版本是不够的。它必须是构建所在的文件夹。指向Mikazo Tech的链接