如何获取 VS 解决方案的 cmd 行构建命令? [英] How to get cmd line build command for VS solution?
问题描述
这可能很容易,但我遇到了问题:当我在 Visual Studio 中构建解决方案时 - 如何为当前构建命令提取确切的 cmd 行,以便能够从 VisualStudio 控制台执行相同的构建?
This is probably easy but I am getting stuck: when I build a solution in Visual Studio - how do extract the exact cmd line for the current build command in order to be able to do the same build from VisualStudio console?
在输出窗口中,我可以看到解决方案构建命令中的单个项目,但看不到整个解决方案的项目.
In the output window I can see the single projects in the solution build commands but not the one for the whole solution.
我使用的是 VS2005.
I am on VS2005.
任何帮助将不胜感激
推荐答案
除了@JohnIdol 所说的正确之外,我发现您需要设置一些 VS 环境变量.我面前没有批处理文件的名称,但您可以修改或我认为"使用它.它位于 VS 程序文件树中的某处.另外,我记得你不想在标准外壳中,而是在一些路径等的 .NET 设置外壳中.稍后我会在装有 VS 的 Windows PC 上添加详细信息.
In addition to what @JohnIdol says correctly, I've found that you need to setup a number VS environment variables. I don't have the name of the batch file in front of me, but you can modify or 'I think' use it. It is in VS program files tree somewhere. Also, as I remember you don't want to be in a standard shell but a .NET setup shell for some paths and such. I'll add details later when I'm at a Windows PC with VS.
提到的批处理文件是 ProgFiles 菜单中的快捷方式.这是其属性的详细信息.
The batch file mentioned is a shortcut in ProgFiles menu. Here is the details of its properties.
%comspec% /k ""C:Program FilesMicrosoft Visual Studio 8VCvcvarsall.bat""x86"
这是我的批处理文件,使用 MSBuild 调用解决方案.
Here is my batch file, using MSBuild to call the solution.
@echo off
:: setup VS2005 command line build environment
set VSINSTALLDIR=C:Program FilesMicrosoft Visual Studio 8
set VCINSTALLDIR=C:Program FilesMicrosoft Visual Studio 8VC
set FrameworkDir=C:WINDOWSMicrosoft.NETFramework
set FrameworkVersion=v2.0.50727
set FrameworkSDKDir=C:Program FilesMicrosoft Visual Studio 8SDKv2.0
set DevEnvDir=C:Program FilesMicrosoft Visual Studio 8Common7IDE
set PATH=C:Program FilesMicrosoft Visual Studio 8Common7IDE;C:Program FilesMicrosoft Visual Studio 8VCBIN;C:Program FilesMicrosoft Visual Studio 8Com
mon7Tools;C:Program FilesMicrosoft Visual Studio 8Common7Toolsin;C:Program FilesMicrosoft Visual Studio 8VCPlatformSDKin;C:Program FilesMicrosoft
Visual Studio 8SDKv2.0in;C:WINDOWSMicrosoft.NETFrameworkv2.0.50727;C:Program FilesMicrosoft Visual Studio 8VCVCPackages;%PATH%
set INCLUDE=C:Program FilesMicrosoft Visual Studio 8VCATLMFCINCLUDE;C:Program FilesMicrosoft Visual Studio 8VCINCLUDE;C:Program FilesMicrosoft Visual
Studio 8VCPlatformSDKinclude;C:Program FilesMicrosoft Visual Studio 8SDKv2.0include;%INCLUDE%
set LIB=C:Program FilesMicrosoft Visual Studio 8VCATLMFCLIB;C:Program FilesMicrosoft Visual Studio 8VCLIB;C:Program FilesMicrosoft Visual Studio 8VC
PlatformSDKlib;C:Program FilesMicrosoft Visual Studio 8SDKv2.0lib;%LIB%
set LIBPATH=C:WINDOWSMicrosoft.NETFrameworkv2.0.50727;C:Program FilesMicrosoft Visual Studio 8VCATLMFCLIB
echo %0 %*
echo %0 %* >> %MrB-LOG%
cd
if not ""=="%~dp1" pushd %~dp1
cd
if exist %~nx1 (
echo VS2005 build of '%~nx1'.
echo VS2005 build of '%~nx1'. >> %MrB-LOG%
set MrB-BUILDLOG=%MrB-BASE%\%MrB-WORK%.%MrB-NICEDATE%.%MrB-NICETIME%.build-errors.log
msbuild.exe %~nx1 /t:Rebuild /p:Configuration=Release > %MrB-BUILDLOG%
findstr /r /c:"[1-9][0-9]* Error(s)" %MrB-BUILDLOG%
if not errorlevel 1 (
echo ERROR: sending notification email for build errors in '%~nx1'.
echo ERROR: sending notification email for build errors in '%~nx1'. >> %MrB-LOG%
call mrb-email "Mr Build isn't happy about build errors in '%~nx1'" %MrB-BUILDLOG%
) else (
findstr /r /c:"[1-9][0-9]* Warning(s)" %MrB-BUILDLOG%
if not errorlevel 1 (
echo ERROR: sending notification email for build warnings in '%~nx1'.
echo ERROR: sending notification email for build warnings in '%~nx1'. >> %MrB-LOG%
call mrb-email "Mr Build isn't happy about build warnings in '%~nx1'" %MrB-BUILDLOG%
) else (
echo Successful build of '%~nx1'.
echo Successful build of '%~nx1'. >> %MrB-LOG%
)
)
) else (
echo ERROR '%1' doesn't exist.
echo ERROR '%1' doesn't exist. >> %MrB-LOG%
)
popd
这篇关于如何获取 VS 解决方案的 cmd 行构建命令?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!