MVCWebアプリケーションをさまざまな環境にデプロイするための最良のメカニズムについていくつか質問があります。以前はセットアッププロジェクト(.msi)を使用していましたが、これらはVS2012で廃止されたため、別のプロジェクトに移行することを検討しています。
現在の設定について説明します。現在、ソース管理にTeamFoundationServerを備えたTFSBuild2010を使用してCIをセットアップしています。
多くの開発者がローカルマシンで作業し、TFSサーバーにチェックインします。定期的に単一サーバーの開発環境と、2台のサーバーを備えた負荷分散されたqa環境にデプロイします。現在のプロセスには、次のカスタムアクションの一部を実行するmsiのインストールが含まれます。
- app_offline.htmファイルを使用して現在のアプリをオフラインにします
- データベーススクリプトで実行(ソリューションのデータベースプロジェクトから)
- web.configを変更します(qaのWebサーバーごとに異なります)
- コードにラベルを付ける
- httpリクエストを介してデプロイされた各ファイルをウォームアップします
- 等
これが現在のプロセスです。ここで、いくつか変更を加えたいと思います。まず、msiに代わるものが必要です。somの調査から、IISを介したWeb展開と、MsDeployの使用が最良の代替手段であると私は信じています。Web構成の変更にWeb構成変換を使用できます。これは正しいですか?もしそうなら、私がしなければならないことの概要を知ることができますか?
次に、TFSBuildを介して継続的デリバリーを設定したいのですが、これをどのように実現できるかわかりません。現在の設定に統合する方法の概要を把握することはできますか?チェックイン主導ではなく、チェックイン後にユーザー主導で実行したいと思います。また、これをソリューションのデータベースプロジェクトのデータベーススクリプトで実行することもできますか。
最後に、本番環境もありますが、これを手動でデプロイしたいと思います。プロセスで、手動でインストールできるアーティファクトも生成できますか?