我们在 cmd
中输入常见命令的时候,如果命令输入错误或使用错误,cmd
中会提示错误原因,帮助我们定位并解决问题。然而如果相同的命令放到了 Visual Studio 的生成事件中,我们就只能得到 Visual Studio 返回的错误代码了。为了能够快速地根据错误代码大致猜测错误原因,本文整理了一部分错误代码的通用原因。
1
命令“"xxx.exe" xxx”已退出,代码为 n。
命令的格式为:
命令 参数1 参数2 参数3
错误代码: 3
系统找不到指定的路径。
这意味着我们在编译生成命令中写的“命令”部分,在那个路径下并不存在命令中写的可执行文件。比如:
- 文件或文件夹的名称写错了,或者写上级目录时“..”的层数不对
- 依赖的是一部分人开发环境中才有的可执行文件,如果你的开发环境中没有这个文件,就会是此错误
- 依赖的文件需要提前生成但还没有生成,某些 BT 的项目会要求先执行一些编译命令以生成命令的可执行文件
错误代码: 123
文件名、目录名或卷标语法不正确。
如果路径字符串根本无法拼出路径,就会引发此错误。比如:
D:\walterlv.github.io\D:\Bin\Debug
这样的路径就是不合理的
一般人当然不会写出这样的命令出来,但如果路径中间有一些环境变量作为占位符,实际执行时本来期望填入相对路径的地方填入了绝对路径就会这样。
错误代码: 9009
‘xxx’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
- 命令写错了,而不是可执行文件写错了
- 比如
xcopy
写成了xcapy
- 比如
- 可执行文件因为缺少引号包括路径中的空格,导致被识别成无法识别的命令
- 比如
C:\Program Files\XXX
因为没有引号的包裹,被识别成了C:\Program
命令
- 比如
持续整理中……
本文会经常更新,请阅读原文: https://blog.walterlv.com/post/error-code-in-vs-build-events.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。
本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请 与我联系 ([email protected]) 。