[解決済み] 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タスク .
- 主観的な差異に関する完全かつ最新の議論については、以下のコメントをご覧ください。
関連
-
[解決済み] <Database> コンテキストを支えるモデルが、データベース作成後に変更されました。
-
[解決済み] COMExceptionエラー80040154を修復する方法は?
-
[解決済み] EF Coreのadd-migrationのビルドに失敗しました。
-
[解決済み] リファレンスの追加にSystem.Web.Mvcが表示されないのはなぜですか?
-
[解決済み] VB.NETでファイル名を一意のサフィックスに変更するには?
-
[解決済み] Moq Callbackについて教えてください。
-
[解決済み] 実際のサービスはデータを返すのに、なぜWebServiceはnullを返すのですか?
-
[解決済み] ObservableCollectionとBindingListの違いについて
-
[解決済み] async」と「await」の使い方とタイミング
-
[解決済み] PowerShellで文字列がNULLまたは空であるかどうかを確認するにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】プラットフォームが同じでも「不正なフォーマットでプログラムを読み込もうとしました。
-
[解決済み】この動詞型ではcontent-bodyを送信できない
-
[解決済み】XAMLにSystem.Stringを埋め込む
-
[解決済み] 16進数値0x00は無効な文字です。
-
[解決済み] ファイルまたはアセンブリ 'System.Data.SQLite' をロードできませんでした。
-
[解決済み] ネットワークの位置からアセンブリをロードすることはできません
-
[解決済み] ASP.NET control to render a <div>
-
[解決済み] Nuget接続の試行に失敗しました。"Unable to load service index for source"。
-
[解決済み] Moq Callbackについて教えてください。
-
[解決済み] WCF - メッセージサイズのクォータを増加させる方法