我想用批處理文件來構建.NET解決方案來構建解決方案。如何使用批處理文件
我知道我需要使用下面的語句
devenv /build release "D:\Source Code\Source\test.sln"
但我不知道如何創建批處理文件將在VS命令提示符下執行。
我想用批處理文件來構建.NET解決方案來構建解決方案。如何使用批處理文件
我知道我需要使用下面的語句
devenv /build release "D:\Source Code\Source\test.sln"
但我不知道如何創建批處理文件將在VS命令提示符下執行。
Visual Studio的命令提示符只是用來加載一些變量和路徑設置。就是這樣,沒有什麼特別的,它不是一個不同的命令提示符,它是一些配置了一些設置的命令提示符。您可以通過頂部以下行加載在自己的批處理文件相同的設置:
call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
(顯然,對於不同版本的VS,路徑可能略有變化)
您可以替換「 x86「以及適合您機器的體系結構。允許的值爲:
這麼說,我不認爲你真的需要加載所有的變量/路徑,你所需要做的就是提供的完整路徑0文件。你可以代替試試這個:
"c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" /build release "D:\Source Code\Source\test.sln"
這對我很有用。但是當我把它放在一個bat文件中並運行它時,它就退出了而沒有構建解決方案。 如何保持命令窗口打開以顯示構建過程的當前狀態? – Ram 2010-05-03 10:36:55
@Ram將暫停命令添加到批處理文件的末尾,並且該窗口將保持打開狀態,直到您按任意鍵。 – Kildareflare 2011-05-26 12:31:11
不知道如果我理解這個問題。
只需創建一個名爲test.bat的文件,添加你上面那個文件書面聲明,然後就打開VS命令提示符,然後鍵入[pathtobatfile] \ test.bat的。
以及我不想轉到VS命令提示符。因爲它是一個批處理文件,我希望它在VS命令提示符下執行,當我點擊它時。 – Ram 2010-04-28 13:03:56
然後,正如Simon所說的,您只需要將批處理文件添加到批處理文件頂部的VS命令行快捷方式中,然後只需創建該批處理文件的快捷方式即可。 – 2010-04-28 13:11:23
樣品批處理文件(同樣,路徑將不同版本的Visual Studio的改變)下面將檢測通過查看它的安裝包含devenv.exe的目錄在註冊表中(對於VS2005,可以很容易地適用於其他版本)並執行devenv.exe。這是你在找什麼?
@echo off
CALL :GETVS2005DIR
IF "%VS2005DIR%" == "" GOTO NOVS2005
IF NOT EXIST "%VS2005DIR%" GOTO NOVS2005
%VS2005DIR%devenv.exe ...
GOTO :EOF
:GETVS2005DIR
for /f "tokens=1,2* delims= " %%i in ('reg query HKLM\Software\Microsoft\VisualStudio\8.0 /v InstallDir') do set VS2005DIR=%%k
GOTO :EOF
:NOVS2005
echo.
echo Visual Studio 2005 installation directory not found
echo.
GOTO :EOF
還要注意的是,只要你的解決方案不包含安裝項目,你通常可以使用MSBUILD,這是簡單的機器上工作沒有安裝Visual Studio來構建它:
REM Check MsBuild is available (this is for V2.0, use a different version if desired)
SET MSBUILD=%WINDIR%\Microsoft.NET\Framework\v2.0.50727\MsBuild.exe
IF NOT EXIST "%MSBUILD%" GOTO NOMSB
"%MSBUILD%" MySolution.sln /t:rebuild /p:configuration=Debug /verbosity:quiet
GOTO :EOF
:NOMSB
echo.
echo MSBUILD not found
echo.
GOTO :EOF
您的問題不清楚。你試過了什麼,結果如何? – Will 2010-04-28 12:57:20
如果我將上述命令放入批處理文件中,它將在Windows命令提示符下執行。但我希望它在VS命令提示符下執行。 – Ram 2010-04-28 13:05:05