a -zから.netプロジェクトのために毎日ビルドする方法は?
-
29-09-2019 - |
質問
私はソフトウェア開発プロセスをよりよく学びたい初心者の開発者です。私の質問は次のとおりです。
- 一般的なビルドとは何ですか?
- VSで独自のプロジェクトを構築した場合の違いは何ですか?
- .NETプロジェクト(できればTFSを使用)に最適な方法でどのように行うのでしょうか?
- 私が知っておくべき/知っておくべきことがもっとありますか?
記事/本/その他の質問への言及は大歓迎です。
ありがとう
解決
1)から ウィキペディアエントリ:
毎日のビルドまたはナイトリービルドは、プログラムの最新バージョンのソフトウェアビルドを行う毎日の練習です。これは、最初に必要なすべての依存関係が存在することを確認するためにまずコンパイルでき、おそらくバグが導入されていないことを示すためにテストされる可能性があります。また、毎日のビルドは、フィードバックのために最新の機能にアクセスできるようにするために、公開されていることがよくあります。
2)夜間のビルドとVSからのビルドの間に違いはないはずですが、毎日のビルドの背後にあるアイデアは、それが自動化されるということです。そうすれば、午前3時に実行するようにスケジュールできます:)
また、最新のビルドで何も壊れていないことを確認するために、検証手順(ユニットまたは機能テストなど)を実行することをお勧めします。そうすることで、ビルドがコンパイルされ、正常に機能していることを保証できます。そうすれば、新鮮なビルドを展開できます。
そのようなプロセスが整っていないと、誰かがビルドを必要とする場合、それを彼らに届けるのにどれくらいの時間がかかるかを本当に知ることは決してありません。問題なくVSでそれを構築することができるかもしれませんし、コードを構築するためだけにコードの一部を修正する必要があるかもしれません。これは、ビルドが大きく、それぞれを個別にビルドする必要がある複数のソリューションで構成されている場合、より大きな問題になります。
3)あなたのためにビルドを実行するバッチスクリプトを作成できます。この目的のためにツールを使用できます。詳細については、以下を参照してください。 What-to-to-utor-automatic-vuilds. 。彼らの提案のいくつかは次のとおりです。
他のヒント
記事 ジョエルから。読むのは良いことです。
毎日のビルドは、主に自動化されたビルドであり、中央サーバーによるビルドです。独自のプロジェクトの構築の違いは、アプリケーションでパッケージ化されたすべてのDLL、ソースコントロール、ローカル依存関係などでチェックインしていないコードに気付くことです。最終コンパイルされたアプリケーションとDLLは、ローカルで構築するものと同じです。
を使用しております ハドソン 一晩のビルド用ですが、使用することもできます Cruise Control.net。 Java&.net Hudsonを行うのが最良の解決策だからです。 MSのTeam Foundation Serverをお持ちの場合は、これを使用することもできます。
見てください これ ハドソンとC#を統合するため。
また、ビルドサーバーにStylecop、FXCOP、およびユニットテストを統合することも検討してください。
このトピックに関するマーティン・ファウラーからの素晴らしい記事があります
http://martinfowler.com/articles/continuousintegration.html
私は個人的に、あなたの開発Envからソースコードを構築することは、毎晩のビルドや毎日のビルドを行うことと同じであることに同意しません。開発環境には、コンポーネント、SDK、ライブラリ、リソースがあふれています。ビルドマシンで毎晩ビルドを行うことが最善の方法です。
また、独自のマシンからビルドを行うと、毎日のチェックインを主流コードまで防ぎます。再び悪い習慣。
毎晩のビルドは、最小限の必要なビルドツールとライブラリで動作する必要があります。ビルドマシンでdev env全体を使用することは悪い考えです。完全なビルドには、テスト/pre -prod envでコンパイル、ビルド、展開後、コードで実行するための迅速で汚れた自動化されたテストもあります。ヌニット、セレン、FXCOPはあなたの友達です。
- 完全なシステムの毎日(または夜)自動ビルド。ビルドシステムレポートビルドエラー私のメールなど。
- それは別のマシンの上に構築され、ファイルのチェックインを忘れていないことを確認したり、マシンのみに文書化されていない依存関係をインストールしたりします。エラーを報告します。
- 毎日のビルドに立ち寄らないでください。各チェックインの後にビルドする継続的な統合に移動してください。 cruisecontrol.net.
毎日のビルドは、少なくとも1日に1回、アプリケーションがビルド可能な状態であることを保証することを目的としています。通常、自動化されたプロセスによって実行されます。多くのチームは、リポジトリにチェックインするたびに準備された継続的な統合ビルドを使用することを好みます。
自動化された毎日のプロセスには、自動化されるという利点があります:)あなたはそれをセットアップして、ユニットテストの実行からサーバーコンポーネントを自動的に展開するまで、さまざまな補助タスクを実行することもできます。開発機械の上に構築しているとき、あなたはあなたのことを保証しています ローカル CIサーバーはあなたについて同じことを主張しますが、コピーは有効で複雑です リポジトリ.
- cruisecontrol.net 人気のあるソリューションです。あなたも考慮することができます レーキを使用します.
1)毎日のビルドは、コードベースの完全なスープへのスープと、テスト、インストール、潜在的に削除を含むインストーラーが実行するプロセスです。
2)それはローカルビルドであり、必ずしもアプリケーションプロセスではなく、コードをコンパイルしてテストすることを除いて、実際の違いはないはずです。
3)それは空中にあり、予算、チームなどに依存します。
4)以前に投稿されたJoelの記事。
一般的なビルドとは何ですか?
「Daily Build」は「継続的な統合」の一部であり、完全なプロジェクトが定期的かつ自動的に構築されることを意味します。通常、これは少なくとも毎日、またはさらに頻繁に発生します。
主な目標は、プロジェクトを常に構築できることを確認することです。また、ビルドの一部としてさまざまなテストを実行できます。テスト環境に自動的に展開し、さらにテストするためにインストーラーを生成できます。
VSで独自のプロジェクトを構築した場合の違いは何ですか?
自動的に発生し、デフォルトの構成を使用します。これにより、プロジェクトが常に正しく構築されていることを確認します。たとえば、バージョンコントロールをチェックするのを忘れた特別な構成、または特定のIDEがインストールされているため)。
.NETプロジェクトに最適な方法でどのように行うのですか?
CI(連続統合)サーバーを使用します。 cruisecontrol.net. 。いくつか利用可能です。