web-dev-qa-db-ja.com

コマンドラインを使用してVisual Studioプロジェクトをビルドする

Windows Server 2008のインストールからASP.NET Webサイトを実行しています。サーバーにsshで接続するので、コマンドラインを使用してページを編集します。

ファイルを簡単に編集できるように、サーバーに Vim をインストールしました。 HTML、CSS、および.aspxページを編集すると、更新は成功します。しかし、ソースコードを編集する場合は、プロジェクトを再構築する必要があります。プロジェクトを再構築すると、すべてがうまく再コンパイルされ、Web上のコピーが更新されます。これは開発サーバーなので、誰もこのサーバーを見ないため、すべての更新は問題ありません。

コマンドラインからプロジェクトをビルドしてソースコードを更新し、サーバー上でビルドするにはどうすればよいですか?

プロジェクトはC#で記述され、ファイルはすべてwwwrootフォルダーにあるため、ビルド後にファイルを移動する必要はありません。

29
user708774

Manual_MSBuild_ReleaseVersion.batという.batファイルを作成します

これを.batファイルに入れます。

REM you'll have to find the "latest" version of where msbuild.exe resides on your machine.. here are some popular versions/locations
REM set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v2.0.50727
REM set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v3.5
REM set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319
REM set msBuildDir=C:\Program Files (x86)\MSBuild\12.0\Bin
set msBuildDir=C:\Program Files (x86)\MSBuild\14.0\Bin

call "%msBuildDir%\msbuild.exe"  MySolution.sln /p:Configuration=Release /l:FileLogger,Microsoft.Build.Engine;logfile=Manual_MSBuild_ReleaseVersion_LOG.log
set msBuildDir=

.slnファイルまたは.csprojファイルを作成できます。 MySolution.slnまたはMyProject.csproj

詳細については、方法:MSBuildを使用してWebパッケージを作成するを参照してください。

さらに一歩進んでください:

rd .\BuildResults /S /Q
md .\BuildResults
rd .\MyProject\Bin\Release  /S /Q

REM set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v3.5
set msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319
call "%msBuildDir%\msbuild.exe"  MySolution.sln /p:Configuration=Release /l:FileLogger,Microsoft.Build.Engine;logfile=Manual_MSBuild_ReleaseVersion_LOG.log
set msBuildDir=

XCOPY .\MyProject\Bin\Release\*.* .\BuildResults\

そのようにして、ディレクトリを削除し(非常にクリーンなビルドを取得するためだけに)、それを作成し、ソリューション/プロジェクトをビルドしてから、ビルドの結果を新しいディレクトリにコピーします。

超新鮮、毎回。ビルドが爆発した場合、\ BuildResultsディレクトリは空です。

そして微妙な小さな指標である、\ BuildResultsディレクトリの日時は、ソリューション/プロジェクトを最後にビルドした(またはビルドしようとした)ときです。微妙ですが、時には役立つ。

40
granadaCoder

たぶんこのコマンドで:

  >> devenv myproject.sln /Build "Release|x86"

Devenvは、「C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe」パスにあります。

10

上記の@granadaCoderによる回答の修正を使用しました。

.NETバージョン4.5以降では、対応するビルドディレクトリはありません

%WINDIR%\ Microsoft.NET\Framework \

また、古いフレームワークにMSBuildを使用すると、補間された文字列のような新しい構成をコンパイルできません。

これを回避するには、最新のMS Build Tools(現在は2015)をインストールし、MSBuild.exeを使用する必要があります

%programfiles(x86)%\ MSBuild\14.0\Bin

8
Ash

.NET SDKをインストールし、MsBuild.exeコマンドラインツールを使用します。プロジェクトまたはソリューションをビルドするときにVisual Studioが使用するものです。

2
David M