NAnt と MSBuild、どちらをいつ選択すればよいですか? 質問する

NAnt と MSBuild、どちらをいつ選択すればよいですか? 質問する

他にもあることは承知していますナントそしてMSビルドStack Overflow に関連質問がいくつかありましたが、両者の直接的な比較が見つからなかったので、ここで質問します。

どのような場合に MSBuild ではなく NAnt を選択すべきでしょうか? どちらが何に適していますか? NAnt は家庭やオープンソースのプロジェクトに適しており、MSBuild は仕事のプロジェクトに適していますか? 2 つのうちのどちらかを使用した経験はありますか?

ベストアンサー1

今週、同様の調査を行いました。判明したことは次のとおりです。

ナント:

  • クロスプラットフォーム (Linux/Mono をサポート)。たとえば、Web サイトを複数のターゲット (Linux Apache と Windows IIS) にインストールする場合に便利です。
  • Ant と構文が 95% 類似しています (現在の Ant ユーザーや Java ビルダーが簡単に習得できます)
  • ビルドの一部としてユニット テストを実行するための NUnit との統合、およびドキュメントの作成のための NDoc との統合。

MSビルド:

  • .NET に組み込まれています。
  • Visual Studio と統合
  • Visual Studio で MSBuild を使い始めるのは簡単です。すべては舞台裏で行われます。さらに深く理解したい場合は、ファイルを手動で編集できます。

主観的な違い: (人によって異なる)

  • NAntのドキュメントはもう少しわかりやすいです。例えば、MSBuild タスク リファレンス「Cscタスク - Cscタスクとそのパラメータについて説明します。」(「助けて」いただきありがとうございます)と記載されています。NAnt タスクリファレンス「csc - C# プログラムをコンパイルします。」アップデート:私は気づいたMSBuild ドキュメント改良されて、今でははるかに優れています (おそらく NAnt と同等)。
  • Visual Studio 内から直接ビルド スクリプト ソース (*.*proj ファイル) を編集する方法を理解するのは簡単ではありません。NAnt を使用すると、Visual Studio で .build スクリプトを XML ファイルとして扱うことができます。
  • どうやら、Visual Studio では、Web アプリケーション プロジェクトは既定で *.*proj ファイルを取得しないため、MSBuild を実行してデプロイメント スクリプトを作成する方法さえも理解するのが非常に困難でした。
  • NAnt は Visual Studio に組み込まれていないため、アドインまたは「外部ツール」として追加する必要があります。設定が少し面倒です。
  • (編集:)同僚の一人がこれを提案しました。クルーズコントロール継続的インテグレーションのために、CruiseControl はすぐに使用できる状態で NAnt とうまく統合されます。アップデート:クルーズコントロールにはMSBuild タスク
  • 主観的な違いに関する完全かつ最新の議論については、以下のコメントを参照してください。

おすすめ記事