52

IDE で実行する Visual Studio のビルドを、コマンド ラインから実行できるスクリプトに変換するにはどうすればよいでしょうか?

4

11 に答える 11

32

VS2008 では、これを行うことができます。

devenv solution.sln /build configuration
于 2008-08-29T06:38:23.303 に答える
30
\Windows\Microsoft.NET\Framework\[YOUR .NET VERSION]\msbuild.exe

多くのコマンド ライン パラメータがありますが、最も単純なものは次のとおりです。

msbuild.exe yoursln.sln
于 2008-08-23T20:46:26.840 に答える
4

最も簡単な方法: ソリューションまたはプロジェクト ファイルを含むディレクトリに移動し、実行msbuildします (Visual Studio 2005 以降を使用していると仮定します)。

より柔軟な方法:

  • MSBuild リファレンスを読んでください。特にMSBuild コミュニティ タスク プロジェクトをインストールした後は、大量のカスタマイズが可能です。
  • NAntを使用します。MSBuild よりも長く存在し、コミュニティ サポートも充実していますが、Visual Studio で作成された既存のプロジェクト ファイルを拡張するのではなく、最初からプロジェクト ファイルを作成する必要があります。
于 2008-08-23T20:44:58.030 に答える
4

NAntMSBuildは、 .NETでのビルドを自動化するための最も一般的なツールです。スタック オーバーフローの質問Best .NET build toolで、それぞれの長所と短所に関する議論を見つけることができます。

于 2008-08-23T20:52:43.517 に答える
4

これは、バッチ スクリプトを使用して、同じソリューションの x86 および x64 構成のコマンド ライン ビルドを完全に自動化するために使用しているスクリプトです。

これは、ビルドにセットアップ プロジェクトがある場合に機能する DevEnv.exe に基づいています (msbuild はセットアップ プロジェクトのビルドをサポートしていません)。

セットアップは、x86 ネイティブ コンパイラと x64 クロス コンパイラを使用する Visual Studio 2010 セットアップを備えた 32 ビット Windows 7 であると想定しています。64 ビット Windows を実行している場合、セットアップに応じて、バッチ スクリプトでx86_amd64amd64に変更する必要がある場合があります。これは、Visual Studio がProgram Filesにインストールされ、ソリューションがD:\MySolnにあることを前提としています。

buildall.batというファイルを作成し、これを追加します。

D:
cd "D:\MySoln"

if "%1" == "" goto all
if %1 == x86 goto x86
if %1 == x64 goto x64

:x86
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 < crosscompilex86.bat
goto eof

:x64
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86_amd64 < crosscompilex64.bat
goto eof

:all
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 < crosscompilex86.bat
if %ERRORLEVEL% NEQ 0 goto eof
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86_amd64 < crosscompilex64.bat
goto eof

:eof
pause

さらに 2 つのバッチ スクリプトを作成します。

crosscompilex86.batを使用して x86 ビルドのリリース バージョンをビルドし、これを含めます。

devenv MySoln.sln /clean "Release|x86"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x86"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%

crosscompilex64.batを使用して x64 ビルドのリリース バージョンをビルドし、これを含めます。

devenv MySoln.sln /clean "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%

ここで、3 つのバッチ ファイルすべてを MySoln.sln と共にソリューション フォルダーに配置します。次のコマンドを実行するショートカットをデスクトップに作成することで、x86 と x64 の両方のリリース バージョンをビルドできます。

  • すべてビルド -> D:\MySoln\buildall.bat
  • x86 リリースのみをビルド -> D:\MySoln\buildall.bat x86
  • x64 リリースのみをビルド -> D:\MySoln\buildall.bat x64

AnyCPU などの別の構成を使用している場合は、それに応じて上記のスクリプトをカスタマイズする必要があります。

于 2014-11-18T18:50:04.127 に答える
3

ビルド ツールNAntまたはMSBuildを調べます。MSBuild は Visual Studio 2005 以降のビルド ツールだと思います。しかし、私はNAntのファンです...

于 2008-08-23T20:43:02.620 に答える
2

UppercuTを見てください。それはあなたの支出に見合うだけの価値があり、あなたが探していることやそれ以上のことをします。

UppercuTはNAntを使用してビルドし、非常に使いやすいビルドフレームワークです。

自動ビルドは、(1)ソリューション名、(2)ソース管理パス、(3)ほとんどのプロジェクトの会社名と同じくらい簡単です。

http://projectuppercut.org/

ここでいくつかの良い説明:UppercuT

于 2009-05-16T19:46:05.367 に答える
2

これは、 VS 2010デバッグ構成用にmsbuildを使用した私のバッチ ファイルです。

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" 
iTegra.Web.sln /p:Configuration=Debug /clp:Summary /nologo
于 2013-04-27T04:30:34.847 に答える
2

Visual Studio 2005では、すべてのプロジェクト ファイル (少なくとも .NET ベースのプロジェクトの場合) は実際のMSBuildファイルであるため、コマンド ラインで MSBuild を呼び出してプロジェクト ファイルに渡すことができます。

肝心なのは、ビルド プロセスを実際に制御したい場合は、NAntや MSBuildなどの「ビルド スクリプト言語」を使用する必要があるということです(他にもありますが、これらは現在主流の言語です)。

于 2008-08-28T17:09:14.947 に答える
1

Visual Studio 2003の C++ プロジェクトでこれを行う必要があったため、これが Visual Studioの新しいバージョンにどの程度関連しているかはわかりません。

実行可能ファイルが作成されるディレクトリに、ファイルがありBuildLog.htmます。そのファイルをブラウザーで開き、次のような各セクションを開きます。

Creating temporary file "c:\some\path\RSP00003C.rsp" with contents
[
/D "WIN32" /D "_WINDOWS" /D "STRICT" /D "NDEBUG" ..... (lots of other switches)
.\Project.cpp
.\Another.cpp
.\AndAnother.cpp
".\And Yet Another.cpp"
]
Creating command line "cl.exe @c:\some\path\RSP00003C.rsp /nologo"

角括弧内の内容 (角括弧は含まない) で .rsp ファイルを作成し、好きな名前を付けます。絶対パスに問題があったことを覚えているようなので、すべてのパスが相対パスであることを確認する必要があるかもしれません。

次に、ビルド スクリプトで、BuildLog.htmファイルからコマンド ラインを追加しますが、.rsp ファイル名を使用します。

cl.exe @autobuild01.rsp /nologo

(cl.exe だけでなく link.exe セクションもあることに注意してください)

于 2008-08-23T21:04:15.970 に答える