2010-04-28 40 views
8

Tôi muốn xây dựng giải pháp .NET bằng cách sử dụng tệp bó.Cách xây dựng giải pháp bằng cách sử dụng batchfile

Tôi biết rằng tôi cần phải sử dụng sau tuyên bố

devenv /build release "D:\Source Code\Source\test.sln" 

Nhưng tôi không biết làm thế nào để tạo ra tập tin thực thi mà sẽ thực hiện trên VS dấu nhắc lệnh.

+0

Quesiton của bạn không rõ ràng. Bạn đã thử cái gì và kết quả là gì? – Will

+0

Nếu tôi đặt lệnh trên trong một tập tin thực thi, nó sẽ thực thi trên nhắc lệnh của Windows. Nhưng tôi muốn nó thực hiện trên dấu nhắc lệnh VS. – Ram

Trả lời

14

Dấu nhắc lệnh phòng thu trực quan chỉ tải một số biến và cài đặt đường dẫn. Đó là tất cả nó là, nó không có gì đặc biệt, nó không phải là một dấu nhắc lệnh khác nhau, đó là dấu nhắc lệnh tương tự với một số cài đặt cấu hình. Bạn có thể tải các thiết lập tương tự trong tập tin batch của riêng bạn bằng cách bao gồm các dòng sau ở đầu:

call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86 

(Rõ ràng, đối với các phiên bản khác nhau của VS, con đường có thể thay đổi một chút)

Bạn có thể thay thế " x86 "với kiến ​​trúc thích hợp cho máy của bạn. Các giá trị được phép là:

  • x86
  • amd64
  • x64
  • ia64
  • x86_amd64
  • x86_ia64

Điều đó nói rằng, tôi không nghĩ rằng bạn thực sự cần phải tải tất cả các vars/path tất cả những gì bạn thực sự cần làm là cung cấp đường dẫn đầy đủ đến devenv.exe tệp. Bạn có thể thử này để thay thế:

"c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" /build release "D:\Source Code\Source\test.sln" 

(Một lần nữa, con đường sẽ thay đổi cho phiên bản khác nhau của visual studio)

+0

Điều này sẽ phù hợp với tôi.Nhưng khi tôi đặt nó vào một tập tin dơi và chạy nó, nó thoát ra mà không xây dựng giải pháp. Làm cách nào để giữ cửa sổ lệnh mở để hiển thị trạng thái hiện tại của quá trình xây dựng? – Ram

+0

@Ram Thêm lệnh Tạm dừng vào cuối tệp lô của bạn và cửa sổ sẽ vẫn mở cho đến khi bạn nhấn bất kỳ phím nào. – Kildareflare

0

Không chắc chắn nếu tôi hiểu câu hỏi.

Chỉ cần tạo tệp có tên test.bat, thêm câu lệnh bạn đã viết ở trên vào tệp đó và sau đó chỉ cần mở dấu nhắc lệnh VS và nhập [pathtobatfile] \ test.bat.

+0

tôi cũng không muốn goto dấu nhắc lệnh VS. Vì nó là một tập tin batch, tôi muốn nó thực hiện trên dấu nhắc lệnh VS khi tôi nhấp vào nó. – Ram

+0

Sau đó, Simon nói tất cả những gì bạn cần làm là thêm một cuộc gọi vào tập tin thực thi bởi phím tắt dòng lệnh VS ở đầu tập tin thực thi của bạn và sau đó tất cả những gì bạn cần là tạo một lối tắt cho tập tin batch đó. –

4

Các tập tin batch mẫu dưới đây sẽ phát hiện các cài đặt thư mục chứa devenv.exe bằng cách nhìn nó lên trong registry (cho VS2005, có thể dễ dàng được điều chỉnh cho các phiên bản khác) và thực thi devenv.exe. Đây có phải là những gì bạn đang tìm kiếm không?

@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 

Cũng lưu ý rằng miễn là giải pháp của bạn không chứa một dự án Setup, bạn sẽ thường có thể xây dựng nó bằng cách sử MSBUILD, đó là đơn giản và hoạt động trên một máy mà không cần Visual Studio cài đặt:

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 
Các vấn đề liên quan