初心者の質問ですが、ご容赦ください。どのような状況で nant や msbuild などのビルド ツールを使用する必要があるのか 疑問に思っています。私は中規模のアプリケーション (.net 3.0) に取り組んでいます。すべての開発者が自分の作業を行っており、自分のコードの変更をリポジトリにチェックしながら自分のマシンでビルドしています。すべてが完了したら、リポジトリからすべてのコードを取得し、自分のマシンでクリーン ビルドを作成して、バイナリをデプロイします。好奇心から、ビルド ツールはどこにあるのでしょうか。
8 に答える
短い答えは常にです。
各開発者は、コードをチェックインする前に、ビルド スクリプトを使用してビルドする必要があります。リリースをビルドする人は、ビルド スクリプトを使用してリリースをビルドする必要があります。ビルドボットは、ビルド スクリプトを使用して、チェックインされたコードをビルドおよびテストする必要があります。
これにより、すべての開発者、テスター、およびビルドボットが、一貫性のある反復可能なビルドを持つことができます。結局のところ、F5 キーはビルド プロセスではありません。
IDE を使用してビルドを行っているようです。これは基本的にビルド ツールです。あなたはすでにそれを使用しています。使用しているツールが解決策ではなく問題になった場合は、ツールを切り替える必要があります。
ビルドのプロセスが 1 つのコマンドよりも長くなる場合は、ビルド ツールを使用する必要があります。標準のビルド プロセスを 1 つのコマンドに戻すために使用する必要があります。ビルド プロセスが 1 つのコマンドよりも長い場合、ビルド中に実行されたコマンドの欠落/重複/不正確さが原因で、エラーが忍び寄る可能性があります。
リリースを開始したとき、またはビルドが特定の数の手動ステップを超えたとき (煩わしくなり始めると気付くでしょう)、このトピックに関する古いブログ エントリを書いたので、興味深いと思うかもしれません。
自明ではないアプリケーションには「ビルドツール」が必要だと思います。私が働いている場所では、継続的インテグレーションという用語を使用しています。非常に例外的なケースもあります (例: 機能 X のしくみを学習するためにサンプル アプリを作成しています) が、それを除けば、しっかりとしたビルド プロセスを行ったことを後悔することはありません。
開発チームが 1 人で構成されていたとしても、リポジトリ、ビルド ツール、および複数のテスト スイートを含むビルド システムをセットアップしたと思います。はい、ビルド システムの維持には時間とお金がかかりますが、それは報われます (私は 6 人の開発者で開始され、現在約 30 人の開発者を含むプロジェクトに 40 か月間取り組んできました。品質管理の観点から言えば、品質の問題が検出されるのが早ければ早いほど、修正費用は安くなります。
何かを自動化したい場合は、nant/msbuild を使用するとよいでしょう。例: 1. チェックイン 2. ビルド 3. テストとコード カバレッジ
Visual Studio で開発していますか? その場合、Visual Studio の基礎となるビルド エンジンであるため、既に msbuild を使用しています。実際には、Visual Studio プロジェクト ファイルは msbuild スクリプトにすぎません。
それとは別に、専用のビルド システムでビルド エンジンを使用できるため、Visual Studio をインストールしなくてもバイナリを無人でビルドできます。単体テストにも使用できます。
zacherates の回答に同意し、それを拡張する ... はい、常に繰り返し可能なビルド プロセスが必要です。技術的には Visual Studio プロジェクトは MSBuild ファイルですが、"公式" ビルド プロセスを開発環境とは別にすることをお勧めします。
私の考えでは、これはチームがどんなに大きくても (小さくても) 当てはまります。私は自宅でNAnt と CruiseControl.NET を使用しています。そこでは、スクラッチ プロジェクトと実験だけに取り組んでいます。職場でも同様のセットアップを使用していますが、NAnt スクリプトを組み立てる方法がもう少し構造化されています。
時間をかけて調べる価値は間違いありません。これは万能薬ではありませんが、どのビルドがいつリリースされ、何が公開されているかを正確に知るためのベスト プラクティスです。コンパイルされたコードを特定できることは、トラブルシューティングの戦いの半分です! :)