質問

現在、データベースを作成し、クエリ アナライザーを通じて SQL スクリプトを実行することにより、Web アプリケーションをデプロイしています。次に、「Web サイトの発行」からの出力をコピーし、その Web サイトを IIS に設定します。

Visual Studio での Websetup については見てきましたが、その部分についてはあまり文書化されていないようです。たとえば、SQL サーバーの IP とパスワードをユーザーに尋ねる方法が明確ではありません。また、この方法で展開された Web サイトは、次のようなフォルダーの下に配置される傾向があります。 http://example.com/プロジェクト, 、だけではなく http://example.com.

さらに、AJAX.Net がインストールされていないか、パッチが適用されていないという問題が発生します。

これまでのところ、サーバーに物理的にアクセスできています。間もなく、CDROM を出荷する予定です。手動介入と自動化の間の実際的なトレードオフは何ですか?

役に立ちましたか?

解決

Visual Studio のデプロイを避け、可能な限り自動化します。Web 導入プロジェクトと NAnt はあなたの友達になります!

簡単に言うと、デプロイメント設定は次のとおりです。

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

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

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

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

ご興味がございましたら、NAnt スクリプトの詳細をお知らせください。

他のヒント

使ってみましたか Web展開 プロジェクト?のサポートがあります VS2008 今も..

私は主に ASP.NET アプリを Linux サーバーにデプロイします。私の標準的なワークフローは次のとおりです。

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

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

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

運用環境では、「deploy」を 2 回入力する必要があります。1 回はチェックアウト、ビルド、日付付きのディレクトリにデプロイするため、もう 1 回はそのディレクトリをデフォルトのインスタンスにするために実行されます。ディレクトリは古いため、関連するディレクトリ内で「deploy」と入力するだけで以前のデプロイメントに戻すことができます。

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

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

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

http://releaseit.codeplex.com/

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top