拉了个开源项目,双击解决方案想编译,IDE提示找不到编译引擎,进目录一看有个可执行文件就叫这个名字。很多人第一次见会犯嘀咕,以为它是病毒或者残留垃圾,其实它是微软自家的构建工具本体。

它是干什么用的

它负责把源码和资源按工程文件里写的规则,一步步翻译成可运行的程序或库。编译顺序、依赖、输出目录、引用的第三方库,全写在工程文件里,它照着执行。命令行里敲一句就能编一个解决方案,配合参数还能指定配置为发布版、目标平台为64位,一条命令搞定批量打包。

和我们常用的开发工具是什么关系

开发工具是给人点的界面,它在底下干活,界面里按的编译按钮,最终就是调用它。所以只要装了构建工具,不装体积巨大的开发工具也能编译,服务器上打包常这么干。企业持续集成里更是标配,拿到代码先恢复依赖再编译,全程命令行,无需人工点。

电脑上这个文件从哪来的

装开发工具时会一起装上,通常在专门的构建引擎目录下。装运行库也可能带上它的一小部分。所以看到它在多个位置出现别慌,版本不同而已,以能编译成功的那份为准。项目里有时也会带一份简化版,方便不装全套环境的人编译。

使用时几个常见疑问

共性问题一是找不到工程文件,要指定具体路径,比如带上项目文件名。二是提示缺少目标框架,装对应的开发包即可。三是编出的程序在别的机器跑不起来,检查发布配置和运行时版本是否一致。想在命令行里顺手使用,把它的目录加进环境变量,之后任意目录直接敲名字就行。

  • 本质:命令行构建工具,界面工具的底座
  • 常见来源:装开发工具时附带,位置在构建引擎目录下
  • 排查顺序:先指定工程路径,再补目标框架,最后核对运行时版本
msbuild 项目.sln -p:Configuration=Releasemsbuild 项目文件 -t:Rebuildmsbuild -t:Cleanmsbuild 项目 /m /p:Platform=x64