1. ホーム
  2. .net

[解決済み] NAntとMSBuild、いつ、どちらを選ぶか?

2022-04-25 09:21:51

質問

があることは承知しています。 NAnt MSBuild の関連質問がStack Overflowに掲載されていますが、両者を直接比較したものが見つからなかったので、ここに質問させていただきます。

どのような場合にMSBuildではなくNAntを選ぶべきでしょうか?また、どのような用途に適しているのでしょうか?NAntはホーム/オープンソースプロジェクトに、MSBuildは仕事のプロジェクトに適しているのでしょうか?この2つのどちらかを使った経験はありますか?

解決方法は?

今週、同じような調査をしました。以下は、私が判断したことです。

NAnt:

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

MSBuildです。

  • .NETにビルトインされています。
  • Visual Studioと統合
  • Visual StudioでMSBuildを簡単に始めることができます - すべて裏側で行われます。より深く知りたい場合は、ファイルを手で編集することができます。

主観的な違い。 (YMMV)

  • NAntのドキュメントはもう少しわかりやすい。例えば MSBuildタスクリファレンス は "Cscタスク - Cscタスクとそのパラメータについて説明します "(quot;ヘルプ"をありがとうございます)を記載しているのに対し NAntタスクリファレンス "csc - C# プログラムをコンパイルする." UPDATEしてください。 に気づきました。 MSBuildのドキュメント は改善され、今ではかなり良くなっています(おそらくNAntと同等です)。
  • Visual Studioからビルドスクリプトのソース(*.*projファイル)を直接編集する方法を見つけるのは簡単ではありません。NAntでは、Visual Studioに.buildスクリプトをXMLファイルとして扱わせるだけでした。
  • Visual Studio では、Web Application Projects はデフォルトで *.*proj ファイルを取得しないため、デプロイメント スクリプトを作成するために MSBuild を実行させる方法さえ見つけるのに非常に苦労しました。
  • NAntはVisual Studioに組み込まれていないため、アドインまたは"外部ツール"として追加する必要があります。これはセットアップに少し手間がかかります。
  • (編集:) 同僚の一人がこのことを話題にしました。 クルーズコントロール CruiseControlは、継続的インテグレーション用にNAntとうまく統合されています。 UPDATE また、CruiseControlは MSBuildタスク .
  • 主観的な差異に関する完全かつ最新の議論については、以下のコメントをご覧ください。