为什么要用脚本编译vs工程
每次给SDK出版本的时候,都是打开vs工程,调到release模式,生成库文件;再调到debug模式,生成库文件。
当操作的次数多了,就感觉非常繁琐,每次都是重复地点击。
于是乎,重复操作脚本化,一次性完成release和debug库的生成。
vs生成工程的本质操作
vs生成工程的操作是IDE通过调用msbuild.exe
编译*.sln
解决方案实现的。
python脚本
os.system('C:/"Program Files (x86)"/MSBuild/14.0/Bin/amd64/msbuild.exe MyAPI.sln /p:Configuration=Debug')
os.system('C:/"Program Files (x86)"/MSBuild/14.0/Bin/amd64/msbuild.exe MyAPI.sln /p:Configuration=Release')
MyAPI.sln
是我的vs工程名字。
/p:Configuration=Debug
表示编译debug版本的库。
上面的脚本能先后把MyAPI.sln
工程用vs2015的编译器生成64位debug和release库。
如果msbuild.exe
的路径加到环境目录,可以去掉前面的路径省略。
msbuild.exe
的路径一般如下:
vs2015(x86):C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe
vs2015(x64):C:\Program Files (x86)\MSBuild\14.0\Bin\amd64\MSBuild.exe
bat批处理文件
按照上面的逻辑,换成bat批处理文件如下:
C:/"Program Files (x86)"/MSBuild/14.0/Bin/amd64/msbuild.exe MyAPI.sln /p:Configuration=Debug
C:/"Program Files (x86)"/MSBuild/14.0/Bin/amd64/msbuild.exe MyAPI.sln /p:Configuration=Release
参考资料
c – 如何从命令行编译Visual Studio项目?
https://codeday.me/bug/20170621/29058.html
MSBuild (Visual C++) 概述
https://msdn.microsoft.com/zh-cn/library/ee662426.aspx?f=255&MSPPError=-2147217396