nAnt はまだサポートされており、.net 3.5/VS2008 に適していますか?

StackOverflow https://stackoverflow.com/questions/1300

  •  08-06-2019
  •  | 
  •  

質問

私は MSBuild を使用してビルドしています。Build Server と同様に CruiseControl.net を使用したいと考えています。

現在、CCNET は nAnt を頻繁に参照していますが、nant がプロジェクト構成と msbuild を通じて実行できることのほとんどは ccnet で実行できるようです。また、nAnt は少しサポートされていないようで、ベータ版のリリースからほぼ 1 年が経ちます。

要するに:私は実際、MSBuild (特に「公式」コンパイラ フロントエンドであるため) には非常に満足していますが、nAnt には少し不快感を感じていますが、時期尚早に判断したくありません。

MSBuild ではなく nAnt を使用する理由は何ですか?特に ccnet に関しては、機能 (および自動ビルド関連の追加) の点で nant と少し重複しているようです。

役に立ちましたか?

解決

MSBuild に満足しているのであれば、私は MSBuild を使い続けると思います。これは、最初に学習したツールが好まれるケースの 1 つである可能性があります。NAnt から始めましたが、MSBuild にはなかなか慣れません。きっと二人ともしばらくは存在するだろう。

この 2 つには根本的な違いがいくつかありますが、これが最もよく強調されるのは次のとおりです。 NAnt ファンとマイクロソフト関係者との間の会話.

興味深いことに、 ジェレミー・ミラー 全く逆の質問をした 彼のブログで 去年。

他のヒント

私の意見では、それはむしろ個人的な好みの問題です。nAnt は優れたフレームワークであり、MSBuild もほぼ同等の機能を備えています。(両方のフレームワークで) カスタム タスクを簡単に開発できるため、必要なほぼすべての作業を実行できます。

あなたの質問の「まだサポートされている」部分には答えることができませんが、すでに nAnt に慣れているのであれば、おそらく実行可能だと思います。あなた (またはあなたのグループの誰か) が MSBuild に精通している場合は、それも良い方法です。

nAnt で使用するカスタム タスクがすでに多数ある場合は、そのまま使用してください。MSBuild ではあまりメリットがありません。とはいえ、nAnt で実行できて MSBuild で実行できないことは、本質的にはないようです。どちらも外部ツールを呼び出すことができ、両方とも .Net ベースのカスタム タスクを実行でき、両方とも大量のコミュニティ タスクを持っています。

私たちがここで MSBuild を使用しているのは、あなたと同じ理由です。これは現在 VS のデフォルトのビルド システムであり、nAnt 固有のことを心配する必要はありませんでした。

MSBuildコミュニティタスク これは、始めるのに適したサードパーティのタスク ベースであり、VSS や Subversion のサポートなど、私が nAnt で行ったカスタム作業のほとんどをカバーしています。

正直なところ、どちらが環境に適しているかによって異なります。Microsoft 以外のツール (nunit、ccnet、ncover) を多数使用している場合。おそらく、nant を使用すると、より良いサポートが得られるでしょう。あるいは、MSTest、TFSBuild を使用している場合は、おそらく MSBuild の方がより良い環境であることがわかります。私は両方を学び、あなたの環境によりスムーズに適合する方を使用したいと思います。

CC.NET は単なるビルド サーバー テクノロジであり、ビルド スクリプト テクノロジではありません。私たちは職場で CC.NET を使用しており、MSBuild ビルド スクリプトを問題なく呼び出すことができます。

NAnt は古くてより成熟したビルド スクリプト言語ですが、動作方法はどちらも似ています。NAnt でできて MSBuild ではできないことはほとんどないので、どちらが使いやすいかによって決まります。NAnt がどの程度アクティブであるかについては、最後のリリースがいつだったかを基準にするのではなく、最後の夜間ビルドがいつだったかを基準にしてください。NAnt はリリース間の時間が長くなる傾向がありますが、夜間のビルドは通常かなり安定しています。

すでに多くの人が指摘しているように、ここでの答えは「状況による」です。のようなものがあります 繰り返しの操作 NAnt でははるかにシンプルでクリーンです。見る MSDN フォーラム これについての議論のために。

特に大規模なプロジェクトでは、ハイブリッド アプローチも使用できることがわかりました。新しいコンポーネントが開発されると、多くの nant スクリプトが msbuild に変換されます。どちらも同じ主要機能をサポートしており、一方ではネイティブにサポートされているがもう一方ではサポートされていないタスクが見つかった場合は、相互に呼び出すことができます。

新しい .NET 開発の場合、MSBuild で開始すると、ソリューション ファイルを直接実行できるため、時間を大幅に節約できます。メインのコンパイルを拡張して他のタスク (ソース管理、デプロイメントなど) を実行することは、非常にうまく機能します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top