2009-06-10 17 views
19

現在、コンパイルされたASP.Netアプリケーションは、Webサイトをローカルに公開し、zipファイルをシステム管理者に電子メールで送信し、(通常は)配備のための長い命令セットを電子メールで送信します。これは、最初にASP.Netアプリケーションを開発者とテストIISインスタンスの顧客に配備したため、同じマシンにサイトを2回展開することができなかったためです。これにより、後続のすべてのプロジェクトに配備のトーンが設定されます。ASP.Netアプリケーションをワイルドに展開するためにどのような方法を使用しますか?

私は現在、展開方法を評価しており、組み込みの展開ツールを具体的に検討しています。具体的には、私はカスタムインストール作業を見て、できるだけ多くの標準インストーラ機能(ほとんどの場合はユーザーインターフェイス)を使用しています。

第2に、私は展開と自動更新をマージすることを検討しています。

組織にソフトウェアを導入するにはどうしたらいいですか?どんなツールを使用していますか、最も頻繁に起こる問題は何ですか?

+1

私はこのオリジナルの質問を投稿して以来、私はWiXを発見しました。オープンソースで無料です。また、MicrosoftがOffice 2007の展開パッケージを開発するために使用したものです。基本を理解すれば使いやすいように見えます。このインターフェイスでは、インストール時にコンポーネントを選択して選択することができます。 – Hooloovoo

+0

更新のみ。アプリケーションのリリース自動化ツールは、この目的のために特別に設計されています。比較対象のツールがたくさんあります。https://en.wikipedia.org/wiki/Application_release_automation –

答えて

-2

デプロイWebアプリケーション
コピーWebツールを使用してあなたは、人々がダウンロードできるように、例えば(多くのユーザーにWebアプリケーションを提供している場合は、Microsoftトレーニングキット帳Webベース開発
Webセットアッププロジェクトからのテキストが便利ですWebからアプリケーションをインストールしてインストールします)。組織の特定のWebサイトを更新する責任がある場合は、更新を行うたびにWebサーバーにログオンしてWindowsインストーラパッケージをインストールすることは現実的ではありません。内部アプリケーションの場合は、Webサーバー上で直接Webアプリケーションを編集できます。ただし、変更はプロダクションWebアプリケーションに即座に実装されます。これにはバグが含まれます。自分でWebアプリケーションをテストできるようにするには、コンピュータ上のWebアプリケーションのローカルコピーを編集し、Web Webツールを使用して本番Webサーバーに変更を公開します。また、Webサーバーのコピーツールを使用して、ステージングサーバーから運用Webサーバー、または任意の2つのWebサーバー間で変更を公開することもできます。 Webのコピーツールは、個々のファイルまたはWebサイト全体を、ソースWebサイトとリモートWebサイト間でコピーできます。また、ファイルの同期を選択することもできます。これには、変更されたファイルのみをコピーし、ソースサイトとリモートサイトの両方で同じファイルを別々に編集する可能性のあるバージョン管理の競合を検出します。 Web Copyツールは、1つのファイル内の変更をマージすることはできません。完全なファイルのみをコピーすることができます。

+0

私が最も頻繁に使用する環境は、5つの専用Webサーバー。私たちは、特にリリース環境や運用環境(デプロイメントパスの環境4と5)にアクセスできないため、再現性のある簡単なデプロイメントパスを探しています。基本的に、我々は多くのユーザーにデプロイしています。 :-) – Hooloovoo

+0

http://msdn.microsoft.com/en-us/library/xay0wxbf(VS.80).aspx – MarkJ

0

私が行っているカップルの事は次のとおりです。

1)環境間で設定が変更された場合、ビルドと同様に渡すweb.configファイルセクションの交換をコンパイルし、きれいにするために、Web配置プロジェクトを使用してください。 2)NAntを使用して、ビルディング、アーカイブ、およびコピーをすべて繰り返します。

Web配置プロジェクトは、NAntの代わりに使用できるMSBuildファイルの作成を終了します。しかし、私はJavaのバックグラウンドから来て、Antは常に使用していましたので、NAntは.Netでの私の好みです。 NAnt Contribタスクを追加すると、ファイルだけでなく、ソースコントロール(デフォルトのタスクの一部ではない場合)や変更のためのSQLスクリプト実行などのアイテムも処理できます。

現在、私は両方のオプションを一緒に使用しています。 NAntビルドファイルでMSBuildを介してWeb Deployment Projectを呼び出しました。環境ごとに設定マネージャを設定することで、web.configセクションの置換を自動的に管理することができ、リリースのコピーとアーカイブをかなり適切に制御できます。

これが役に立ちます。

+0

現在、私たちはJetBrainsのTeamCityを使用しています。他の誰かがビルドスクリプトをセットアップできるようにしました!それはかなり簡単で、MSBuildをCIサーバーで使用します。また、サイトを正しく構築するためにWeb Deployment Projectを使用していますが、正しく設定するにはちょっとばかばかしいことがあります。 – Hooloovoo

+0

ビルドのセットアップを適切に行うという意味では分かります。結局私が持っているデプロイされた環境ごとにConfiguration Manager環境を設定し、それぞれの環境(NAntまたはCIサーバーのビルドファイルを使用して自動化)でビルドするWebデプロイメントプロジェクトをデフォルト設定しました。追加のクリーニング/操作が必要な場合は、WDproj(msbuild)ファイルを直接編集するか、NAntに更新します。 TeamCity用のCIビルドファイルを作成しないので、wdprojが最適です。それ以外は、それぞれの環境にどのような苦労ポイントがあるのか​​を見て、それらに焦点を合わせます。 – JamesEggers

0

私たちはWebデプロイメントプロジェクトを使用し、VS 2008プロジェクトはwebdeployment &他のプロジェクトの出力から.msiを作成します。 'setup'と呼ばれる通常のWindowsアプリケーションは、カスタムステップでセットアッププロジェクトをカスタマイズしようとするのではなく、多くのdb作成と予備的な作業を行うために使用されます。 MSコードをカスタマイズしようとするよりも、自分でやるほうが簡単です。このWindowsアプリケーションは、ユーザーが必要とする正しい.msiファイルを呼び出します。

チームファウンデーションビルドは毎晩実行され、ソリューションを再構築し、すべてを「リリースCD」ディレクトリにコピーして、誰でも最新のリリースでテストを実行できます。 正直言ってTFSビルドは私たちのような小さなチームのために少し外に出ています。

以前の会社では、このhttp://www.finalbuilder.com/を使用しました。使いやすさとサポートされるソフトウェアの量について、これをお勧めします。

1

1)/各Webサーバーのイントラネットサイトの場合

+0

この問題は、3番目の環境を越えたアクセスがないため、可能な限り自動化する必要があることです。コーポレートブランドの観点から見ると、これはあまり強くないわけでもありません。ここ数年の間、私たちがやってきたことはほとんどないと言われました! – Hooloovoo

0

に手作業で貼り付けプロダクション環境

3)コピーにMSBUILDと

2)FTPファイルをプロジェクトをビルドし、我々はSVNと一緒にCruiseControlを使用します自動的にサイトを再構築させる。

理論的には、ドライブをクライアントのイントラネットにリモートでマッピングできる場合は、VPN経由でこのモデルを拡張できます。または、サイトのコンパイル済みDLLを含むリモートフォルダを同期させるために、SyncBackなどのツールを使用すると、より迅速で汚れた解決策が得られる場合があります。

3

私たちは専用のDEV、TEST、STAGE、およびPRODUCTIONサーバーを持っています。

クルーズコントロールを実行する専用のビルドマシンもあります。

クルーズコントロールは、コードがチェックインされた後に実行される継続的インテグレーションビルド用に構成されています。また、開発、QA、ステージ、およびプロダクションタスクごとに構成されています。

開発用にデプロイするには、まずコードをSVNから取得してビルドし、「プリコンパイル済みWeb」フォルダを開発用Webサイトにコピーし、Webサービスプロジェクトを開発用アプリケーションサーバーにコピーします。クルーズコントロールは、ビルドが開始される前にソースコードに「タグ付け」するように設定されているので、後でビルドを再現することも、ホットフィックスを行う必要がある場合にタグから分岐することもできます。

QAに展開する場合、ファイルは開発マシンからQAマシンにコピーされます。

同様に、ステージに展開するには、ファイルがQAマシンからステージマシンにコピーされます。

最後に、本番環境にデプロイするために、ファイルがステージマシンから本番マシンに再度コピーされます。

各環境を設定するには、接続文字列を変更する各環境のCruise Controlタスクの一部であるカスタムツールがあります。「debug = true | false」、「customErrors = Off | RemoteOnly」などの環境固有の設定。

各環境は、クルーズコントロールダッシュボードからボタンを押して展開できます。

現在、Cruise Controlの設定ファイルでプロダクションデータベースのパスワードが設定されていますが、他の場所に移動すると便利です。

最後に、私たちのプロダクションマシンが専用のホスティングファシリティにあるにもかかわらず、サーバーはクルーズコントロールマシンからアクセス可能であるため、プロダクションデプロイメントは非常に簡単です。唯一の手作業は、web.configファイルを暗号化して、Cruise Controlが提示する "AppOffline.html"ファイルを削除することです。

これが役立つのか、ご不明な点がありましたら教えてください。

ありがとうございます!

+0

CCマシンからホスティング施設の本番マシンからどのようにアクセスしますか? (UNC、FTPなど)? – RyanW

+0

どういうわけか、特定のマシン(Cruise Controlマシンがその中の1台である)からのみ、プロダクションマシンはローカルネットワーク上で利用できました。私はもはやその会社にいないので、私はもはやsysadminに直接アクセスして尋ねることはできません。 したがって、ネットワーク上の別のマシンにファイルをコピーしているかのように展開が行われました。私はUNCパスが使用されたと信じています。 –

関連する問題