在项目开始生成或者生成完成后想做一些操作,比如去编译非解决方案下的的项目,完成编译后复制文件到某个文件夹之类的纠结需求。

1. 基本使用

  • 预先生成事件命令行,可以在项目编译的过程中运行
  • 后期生成事件命令行,项目生成完成后

右键项目属性 >> 生成事件,如下所示

示例1:

VS批处理命令使用

C:

cd C:\

md webconfig

cd C:\webconfig\

svn checkout http://svn地址 

svn update C:\本地路径\

示例2:

VS批处理命令使用

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中获取最新的文件

相关文章:

  • 2022-12-23
  • 2021-12-04
  • 2021-08-17
  • 2022-01-26
  • 2021-09-04
  • 2022-03-09
猜你喜欢
  • 2021-06-03
  • 2021-12-04
  • 2021-12-15
  • 2022-12-23
  • 2021-11-12
相关资源
相似解决方案