VS批处理命令使用
在项目开始生成或者生成完成后想做一些操作,比如去编译非解决方案下的的项目,完成编译后复制文件到某个文件夹之类的纠结需求。
1. 基本使用
- 预先生成事件命令行,可以在项目编译的过程中运行
- 后期生成事件命令行,项目生成完成后
右键项目属性 >> 生成事件,如下所示
示例1:
C:
cd C:\
md webconfig
cd C:\webconfig\
svn checkout http://svn地址
svn update C:\本地路径\
示例2:
chcp 936
"D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\msbuild.exe" ..\..\..\B\B.csproj /t:Rebuild /p:Configuration=Debug
xcopy "..\..\..\B\Bin\Debug\*.dll" "%cd%" /s /e /y
echo current path: “%cd%”
"D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\msbuild.exe" ..\..\..\A\A.csproj /t:Rebuild /p:Configuration=Debug
xcopy "..\..\..\APath\Bin\Debug\*.dll" "%cd%" /s /e /y
echo current path: ”%cd%“
3. 编译命令
- devenv 一般是安装了vs才会有
- MSBuild 不安装vs,安装了net也可以有,比如C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\
错误1:一些C#的高级语法在net安装目录下的msbuild不支持
解决方法:使用vs安装目录下的msbuild
e.g. "D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\msbuild.exe" ..\..\..\xxx.csproj /t:Rebuild /p:Configuration=Debug
错误2:找不到指定的路径、无效的参数数量
解决方法:给路径都加上双引号
4. 一些技巧
chcp 936 在vs的输出目录中显示中文
$(SolutionDir) 当前解决方案的根目录,即sln文件所在的目录
$(TargetDir) 当前编译的根目录,比如debug
%cd% 当前cmd目录
svn checkout 从svn中获取一个库
svn update 从svn中获取最新的文件
欢迎在评论区留下你宝贵的意见,不论好坏都是我前进的动力(cnblogs 排名提升)!
如果喜欢,记得点赞、推荐、关注、收藏、转发 ... ;)