2014-01-10 10 views
21

MSBuildとC#コンパイラをコマンドプロンプトから使用する違いは何ですか? Visual Studioを使用せずに私のソリューションやプロジェクトを手動で構築したいのですが、コマンドラインツールの使い方を学びたいと思います。 C#あなたのコードでMSBuildとコンパイラ

答えて

25

あなたはcsc.exeを意味するのですか?

これが意味するところなら、cscMSBuildは全く異なるアプリケーションです。

MSBuildは、ソリューションとプロジェクトファイルを使用してプロジェクトにファイルをビルドします。 MSBuildは実際のコンパイラとしてcsc.exeを使用しますが、ソリューションやプロジェクトファイル(これらのファイルは実際にはxmlファイル)に基づいてアセンブリ、参照などをどこに見つけるかを知っています。

csc.exeを使用する場合、ファイル、参照などへのパスを手動で入力する必要があります。そのため、コンパイルがはるかに難しくなります。

MSDN MSBuildの:http://msdn.microsoft.com/en-us/library/dd393574.aspx

MSDN CSC:http://msdn.microsoft.com/en-us/library/78f4aasd.aspx

+0

あなたは、Visual Studioの助けを借りずに構築している、私はCSCを使用して言わないだろうがMSBuildのよりも難しいです。これを使うと、コンパイラに何を指示しているのかをより深く理解することができます。これにより、依存関係の問題を解決しやすくなります。また、プロジェクトに別のファイルを追加するたびにMSBuildファイルを編集する必要性を排除して、ソースコードディレクトリにすべての.csファイルを再帰的に自動的にコンパイルすることも非常に簡単です。とにかく、実際に使用していない.csファイルを持っていないようにします。 –

+0

MSBuildのログファイルを読むのと同じレベルの理解を得ることができます。 –

0

は最初ILコードにコンパイルしJITコンパイラは、すべてのコンパイラ.soのCPU命令にコードをコンパイルILにコードをコンパイルする必要があります。 だから何MSBuildのである:

Microsoftはエンジン(MSBuildの)を作成することは MicrosoftおよびVisual Studio用の新しいビルドプラットフォームです。 (

のVisual Studio:MSBuildのは、オーケストレーションと Visual Studioが

Seeインストールされていないビルドラボ環境で製品を構築する開発者に を有効にする、それがどのように処理するかに に関して完全に透過的であり、ソフトウェアを構築しますsln)

あなたのソリューションが小さく、派手なことをする必要がない場合は、Visual Studio(sln)ビルドランナーを使用できます。 Project-> Build(VSメニューから)を実行したときとまったく同じことをします。このオプションは構成が非常に簡単で数回クリックするだけでCIサーバーがソリューションをコンパイルします。

MSBuildの

あなたは、離れて、単純なコンパイルから、より高度なシナリオを実行する別の設定ファイルを適用するように、設定ファイルに変換した値を挿入し、バイナリなどを展開する必要がある場合は、MSBuildのオプションを選択することになります。これを使用する必要があるときは、sln builderが処理を行えないことを知っているでしょう。このオプションを使用するには、タスクベースのxml形式のビルドスクリプト言語に関する知識が必要です。

関連する問題