如何为 Visual Studio 命令提示符创建批处理文件

Posted

技术标签:

【中文标题】如何为 Visual Studio 命令提示符创建批处理文件【英文标题】:How to create a Batch File for Visual Studio Command Prompt 【发布时间】:2011-08-18 06:08:15 【问题描述】:

我想为 Visual Studio 2008 x64 Cross Tools Command Prompt 创建一个批处理文件,以便在我的 PC 中继续执行某些操作,这里是 senario。

svn update
delete some files
MSBuild MySolutiuon.sln
delete some files
xcopy somefiles
MSBuild AutomateBuildConfiguration.xml /p:Configuration=Release
xcopy some files
delete somefiles
xcopy some files

create a Zip file if it is possible // it is not neccessary

我可以使用简单的命令提示符和 MSBuild parts 使用 Visual Studio 命令提示符来完成大部分工作,但是由于这两个提示符不同,我无法完成我的 senario。

我已经测试了所有命令并且对我来说工作得很好,如果你知道我应该怎么做,请给我一个解决方案。

我检查了this 并没有理解任何内容 提前谢谢你

【问题讨论】:

【参考方案1】:

让你的批处理文件的第一行设置VS环境:

call "C:\Program Files\Microsoft Visual Studio 2008\VC\vcvarsall.bat" x86_amd64
svn update
delete some files
MSBuild MySolutiuon.sln
... more commands ...

x86_amd64 是用于 x64 交叉工具命令提示符的参数。

运行 vcvarsall.bat 后,msbuild 将在批处理文件中其余命令的路径中可用。

或者,如果您不使用 Visual C++,您可能更愿意使用此行设置环境(而不是调用 vcvarsall.bat):

对于 VS 2008:

call "%vs90comntools%vsvars32.bat"

对于 VS 2010:

call "%vs100comntools%vsvars32.bat"

对于 VS 2012:

call "%vs110comntools%vsvars32.bat"

对于 VS 2013:

call "%vs120comntools%vsvars32.bat"

对于 VS 2015:

call "%vs140comntools%vsvars32.bat"

对于 VS 2017:

批次现在称为 vc 而不是 vs

call "%vs140comntools%\..\..\VC\Auxiliary\Build\vcvars32.bat"

或更好

call "%vs140comntools%\VsDevCmd.bat"

【讨论】:

我不确定 MSBuild 命令能否正常运行。实际上我必须有一个批处理文件。它将在晚上用作我内部的持续集成工具,因此我无法自己运行它们。 我的意思是我不确定这个技巧 MSBuild 是否会检测为内部命令,因为它是在简单的命令提示符下运行的,不是吗?如何做到这一点(使用 VS 提示调整我的批处理文件)? +1'd。虽然我找不到 VS2010 的等效 cmd 环境变量; "call "%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" 对我有用。 这也适用于 vs12。我的命令是: call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64 如果你去 vcvarsall.bat 文件,右键单击,编辑,你可以看到所有不同的命令. 有环境变量VS120COMNTOOLS(120 表示 Vs 2013;VS 2012 将是 110 等等)。使用它可以避免硬编码 VS 安装的路径。【参考方案2】:

对于 Visual Studio 2015

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64

对于 Visual Studio 2013

call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64

【讨论】:

【参考方案3】:

对于 Visual Studio 2010,这很好用:

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86

【讨论】:

【参考方案4】:

对于 Visual Studio 2019

call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x86_amd64

【讨论】:

我没有这条路径。我错过了什么吗?谢谢! 谢谢!我很难找到正确的路径。因为我有 VS 2019 Professional,所以我只是用“Professional”替换了“Community”。如果你有 Enterprise,我会假设你会用 Enterprise 替换它。 当我从同一个 cmd.exe 实例多次执行批处理文件时,这会随机中断。不知何故,这会对批处理执行完成后持续存在的环境进行更改。另外我必须问这与C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat 有何不同,C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat 由开发人员命令提示符的默认开始菜单条目运行。【参考方案5】:

对于 Visual Studio 2012:

call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64

【讨论】:

【参考方案6】:

我使用以下步骤编写了一个 bat 文件,并且成功了。

call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64
echo call complete
pause
cd C:\tfs.sbdinc.com
tf get $/MAC_MBA/CoreApplicationAndReports/Main/Application/Solution /recursive
echo get complete
pause
cd C:\tfs\CoreApplicationAndReports\Main\Application\Solution
msbuild
echo build complete
pause
devenv mba.sln
echo ide launch complete
pause

【讨论】:

【参考方案7】:

尝试使用下面的批处理文件运行 MS 测试/Nunit 测试以进行 C# 测试。

@echo off
echo Run the CMD(Command Prompt) Program.
echo.
pause
cls
echo Target Framwork
CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319
echo 'Project Path'
msbuild  "C:\Git\ElementsCloud.Tests\Source\ElementsCloud.Tests.sln"/p:configuration=debug
pause
echo 'Project Dll path' and Execute tests
cd C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TestWindow
vstest.console.exe "C:\Git\ElementsCloud.Tests\Source\Selenium.Tests\bin\Debug\net471\Selenium.Tests.dll" /Tests:Test1,Test2,Test3
echo. 
PAUSE
EXIT

【讨论】:

EXIT最后做了什么?它只是退出构建工具还是整个命令提示符?

以上是关于如何为 Visual Studio 命令提示符创建批处理文件的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Visual Studio Express 2013 桌面项目创建安装程序

如何为 Visual Studio Team Services 成员授予“创建测试计划”权限?

如何为 SQL 文件、Visual Studio 数据库项目创建项目模板

如何为visual studio更改ctrl + space

如何为office安装visual studio工具?

Visual Studio 扩展 - 如何为代码着色?