6

現在、データベースを作成し、クエリ アナライザーを介して SQL スクリプトを実行することで、Web アプリケーションを展開しています。次に、「publish website」からの出力をコピーし、IIS でその Web サイトをセットアップします。

Visual Studio で websetup を見たことがありますが、その部分はドキュメントが薄いようです。たとえば、SQL サーバーの IP とパスワードをユーザーに尋ねる方法が明確ではありません。また、この方法でデプロイされた Web サイトは、単にhttp://example.comではなく、http://example.com/projectのようなフォルダーの下に表示される傾向があります。

次に、AJAX.Net がインストールされていないか、一部または他のパッチが適用されていないという問題があります。

これまでのところ、サーバーに物理的にアクセスできます。ただし、CDROM の出荷は間もなく開始されます。手動介入と自動化の間の実際的なトレードオフは何ですか?

4

3 に答える 3

7

Visual Studio の展開を避け、可能な限り自動化します。Web Deployment Projects と NAnt はあなたの友達になることができます!

簡単に言えば、展開のセットアップは次のとおりです。

  1. RedGate SQL を使用して、開発データベースとライブ データベースの違いをスクリプト化します。

  2. MSBUILD を呼び出して Web デプロイ プロジェクト (.wdproj) をビルドする NAnt ビルド ファイルは、結果としてコンパイルされた Web アプリを (SQL 変更スクリプトと共に) 圧縮し、その zip ファイルをサーバーにアップロードします。

  3. サーバー側には、アプリケーションをオフラインにし、データベースをバックアップし、Web サイトをバックアップする別の NAnt ビルド ファイルがあります。SQL 変更スクリプトを実行し、新しいバージョンを解凍してアプリをオンラインにします。

ステップ 3 は通常「手動」で実行されますが (1 回のダブルクリック)、深夜にスケジュールされることもあります。CDROM からまったく同じことを行うことも、かなり小さな Windows フォーム アプリをラッパーとして作成することもできます。

興味があれば、NAnt スクリプトの詳細を教えていただければ幸いです。

于 2008-09-15T13:31:52.730 に答える
2

Web Deploymentプロジェクトを使用してみましたか? 現在、 VS 2008もサポートされています。

于 2008-09-15T13:27:24.037 に答える
0

私は主に ASP.NET アプリを Linux サーバーに展開しています。これが私の標準的なワークフローです:

  • ソース コード リポジトリを使用しています (Subversion など)
  • サーバーには、次のことを行う bash スクリプトがあります。
    • 最新のコードをチェックアウトします
    • ビルドを行います (DLL を作成します)
    • ファイルを必要なものに絞り込みます (たとえば、コード ファイルを削除します)。
    • データベースをバックアップします
    • 現在の日付で名前が付けられたディレクトリ内の Web サーバーにファイルをデプロイします。
    • 新しいスキーマがデプロイメントに含まれている場合、データベースを更新します
    • 新しいインストールをデフォルトのものにして、次のヒットで提供されるようにします

チェックアウトは Subversion のコマンドライン バージョンで行われ、ビルドは xbuild で行われます (Mono プロジェクトの msbuild と同様)。ほとんどのマジックは ReleaseIt で行われます。

私の開発サーバーでは基本的に継続的な統合を行っていますが、本番側では実際にサーバーに SSH で接続し、スクリプトを実行して手動でデプロイを開始しています。私のスクリプトは巧妙に 'deploy' と呼ばれているので、それを bash プロンプトで入力します。私はとてもクリエイティブです。いいえ。

実稼働環境では、「デプロイ」と 2 回入力する必要があります。1 回目はチェックアウト、ビルド、および日付付きディレクトリへのデプロイで、もう 1 回はそのディレクトリをデフォルト インスタンスにします。ディレクトリは日付が付けられているため、関連するディレクトリ内から「デプロイ」と入力するだけで、以前のデプロイに戻すことができます。

最初の展開には数分かかり、以前のバージョンへの復帰には数秒かかります。

これは私にとって優れたソリューションであり、3 つのコマンドライン ユーティリティ (svn、xbuild、および releaseit)、DB クライアント、SSH、および Bash のみに依存しています。

いつか CodePlex で ReleaseIt のコピーを更新する必要があります。

http://releaseit.codeplex.com/

于 2010-07-21T19:20:49.590 に答える