Visual Studio を使用してサイトを配置する (C#)

作成者: Scott Mitchell

PDF のダウンロード

Visual Studio には、Web サイトをデプロイするためのツールが含まれています。 これらのツールの詳細については、このチュートリアルを参照してください。

はじめに

前のチュートリアルでは、単純な ASP.NET Web アプリケーションを Web ホスト プロバイダーにデプロイする方法について説明しました。 具体的には、FileZilla のような FTP クライアントを使用して、開発環境から運用環境に必要なファイルを転送する方法について説明しました。 Visual Studio には、Web ホスト プロバイダーへのデプロイを容易にする組み込みツールも用意されています。 このチュートリアルでは、次の 2 つのツールについて説明します。Web サイトのコピー ツールでは、FTP または FrontPage Server 拡張機能を使用してリモート Web サーバーとの間でファイルを移動できます。および発行ツール。Web サイト全体を指定した場所にコピーします。

注意

Visual Studio によって提供されるもう 1 つの展開関連ツールは、 Web セットアップ プロジェクト アドインです。 Web セットアップ プロジェクトは、Web サイトのコンテンツと構成情報を 1 つの MSI ファイルにパッケージ化します。 このオプションは、イントラネット内に展開されている Web サイトや、顧客が独自の Web サーバーにインストールする事前パッケージ化された Web アプリケーションを販売する企業に最も役立ちます。 Web 配置プロジェクト Add-In は、開発環境と運用環境のビルド間の構成の違いを指定しやすくする Visual Studio Add-In です。 Web セットアップ プロジェクトについては、このチュートリアル シリーズでは説明しません。Web 配置プロジェクトの概要については、「 開発と運用の一般的な構成の違い 」チュートリアルを参照してください。

Web サイトのコピー ツールを使用したサイトの展開

Visual Studio の Web サイトのコピー ツールは、スタンドアロン FTP クライアントと同様の機能です。 簡単に言うと、Web サイトのコピー ツールを使用すると、FTP または FrontPage サーバー拡張機能を使用してリモート Web サイトに接続できます。 FileZilla のユーザー インターフェイスと同様に、Web サイトのコピー ユーザー インターフェイスは 2 つのペインで構成されます。左側のウィンドウにはローカル ファイルが一覧表示され、右側のウィンドウには移行先サーバー上のファイルが一覧表示されます。

注意

[Web サイトのコピー] ツールは、Web サイト プロジェクトでのみ使用できます。 Visual Studio では、Web アプリケーション プロジェクトを使用するときにこのツールが提供されます。

Web サイトのコピー ツールを使用して、Book Review アプリケーションを運用環境に発行する方法を見てみましょう。 [Web サイトのコピー] ツールは、Web サイト プロジェクト モデルを使用するプロジェクトでのみ機能するため、このツールを BookReviewsWSP プロジェクトでのみ使用して確認できます。 そのプロジェクトを開きます。

[Web サイトのコピー] ツール プロジェクトを起動するには、ソリューション エクスプローラーの [Web サイトのコピー] アイコン (このアイコンは図 1 で円で囲まれています) をクリックします。または、[Web サイトのコピー] オプションを [Web サイトのコピー] メニューから選択することもできます。 どちらの方法でも、図 1 に示す [Web サイトのコピー] ユーザー インターフェイスが起動します。リモート サーバーにまだ接続していないため、図 1 の左側のペインのみが設定されます。

Web サイトのコピー ツールのユーザー インターフェイスが 2 つのウィンドウに分割されている

図 1: Web サイト のコピー ツールのユーザー インターフェイスが 2 つのウィンドウに分割されている (フルサイズの画像を表示する をクリックします)

サイトを展開するには、まず Web ホスト プロバイダーに接続する必要があります。 [Web サイトのコピー] ユーザー インターフェイスの上部にある [接続] ボタンをクリックします。 これにより、図 2 に示す [Web サイトを開く] ダイアログ ボックスが表示されます。

左側から次の 4 つのオプションのいずれかを選択して、移行先 Web サイトに接続できます。

  • [ファイル システム ] - これを選択して、コンピューターからアクセスできるフォルダーまたはネットワーク共有にサイトを展開します。
  • ローカル IIS - このオプションを使用して、コンピューターにインストールされている IIS Web サーバーにサイトを展開します。
  • FTP サイト - FTP を使用してリモート Web サイトに接続します。
  • リモート サイト - FrontPage Server 拡張機能を使用してリモート Web サイトに接続します。

ほとんどの Web ホスト プロバイダーは FTP をサポートしていますが、FrontPage Server 拡張機能のサポートを提供するサービスは少なくなります。 そのため、FTP サイト オプションを選択し、図 2 に示すように接続情報を入力しました。

[Web サイトを開く] ダイアログのスクリーンショット。テキスト フィールドに接続情報が入力されていることを示しています。

図 2: 宛先 Web サイトを指定する (クリックするとフルサイズの画像が表示されます)

接続後、Web サイトのコピー ツールは、右側のウィンドウのリモート サイトにファイルを読み込み、各ファイルの状態を示します(新規、削除、変更済み、変更なし)。 ローカル サイトからリモート サイトにファイルをコピーすることも、逆にコピーすることもできます。

BookReviewsWSP プロジェクトに新しいページを追加し、Web サイトのコピー ツールの動作を確認できるように展開しましょう。 という名前 Privacy.aspxのルート ディレクトリに Visual Studio で新しい ASP.NET ページを作成します。 ページでマスター ページ Site.master を使用し、サイトのプライバシー ポリシーをこのページに追加します。 図 3 は、このページが作成された後の Visual Studio を示しています。

Web サイトのルート フォルダーに新しいページの名前付き <コード>Privacy.aspx</コード> を追加する

図 3: Web サイトのルート フォルダーにという名前 Privacy.aspx の新しいページを追加する (フルサイズの画像を表示する をクリックします)

次に、[Web サイトのコピー] ユーザー インターフェイスに戻ります。 図 4 に示すように、左側のウィンドウに新しいファイル Policy.aspxPolicy.aspx.csと が含まれるようになりました。 さらに、これらのファイルは矢印アイコンと [新規] の状態でマークされ、ローカル サイトには存在しますが、リモート サイトには存在しないことを示します。

Web サイトのコピー ツールの左側のウィンドウに新しい <コード>Privacy.aspx</コード> ページが含まれています

図 4: [Web サイトのコピー] ツールの左側のウィンドウに新しい Privacy.aspx ページが含まれている (フルサイズの画像を表示するにはクリックします)

新しいファイルを展開するには、それらを選択し、矢印アイコンをクリックしてリモート サイトに転送します。 転送が完了すると、 ファイルと ファイルが Policy.aspx ローカル サイトと Policy.aspx.cs リモート サイトの両方に存在し、状態が [変更なし] になります。

新しいファイルの一覧に加えて、Web サイトのコピー ツールでは、ローカル サイトとリモート サイトの間で異なるファイルが強調表示されます。 この動作を確認するには、ページに Privacy.aspx 戻り、プライバシー ポリシーにいくつかの単語を追加します。 ページを保存し、[Web サイトのコピー] ツールに戻ります。 図 5 に示すように、左側の Privacy.aspx ウィンドウのページの状態は [変更済み] で、リモート サイトと同期が取れなくなったことを示します。

Web サイトのコピー ツール コード>Privacy.aspx</コード> ページが変更されたことを示<します

図 5: [Web サイトのコピー ツール] ページが変更されたことを示 Privacy.aspx します (フルサイズの画像を表示する場合は、ここをクリックします)

[Web サイトのコピー] ツールは、最後のコピー操作以降にファイルが削除されたかどうかも示します。 ローカル プロジェクトから を Privacy.aspx 削除し、[Web サイトのコピー] ツールを更新します。 ファイルと Privacy.aspx.cs ファイルはPrivacy.aspx左側のウィンドウに一覧表示されたままですが、最後のコピー操作以降に削除されたことを示す [削除済み] ステータスが表示されます。

Web アプリケーションの発行

Visual Studio 内から Web アプリケーションをデプロイするもう 1 つの方法は、[ビルド] メニューからアクセスできる [発行] オプションを使用することです。 [発行] オプションは、アプリケーションを明示的にコンパイルし、必要なすべてのファイルを指定されたリモート サイトにコピーします。 しばらくすると、Web サイトのコピー ツールよりも [発行] オプションの方が鈍くなります。 [Web サイトのコピー] ツールを使用すると、ローカル サイトとリモート サイト上のファイルを調べ、必要に応じて個々のファイルをアップロードまたはダウンロードできますが、[発行] オプションでは Web アプリケーション全体が展開されます。

必要なすべてのファイルを指定したリモート サイトにコピーするだけでなく、 [発行] オプションを使用すると、アプリケーションも明示的にコンパイルされます。 Web アプリケーション プロジェクトを明示的にコンパイルする必要がある場合、Web アプリケーション プロジェクトで [発行] オプションを使用できるのも当然です。 少し驚くべきことは、[発行] オプションが Web サイト プロジェクトでも使用できることです。 「 展開する必要があるファイルの決定 」チュートリアルで説明したように、Web サイト プロジェクトは、事前コンパイルと呼ばれるプロセスを通じて明示的に コンパイルできます。 このチュートリアルでは、Web アプリケーション プロジェクトで [発行] オプションを使用することに重点を置いています。今後のチュートリアルでは、事前コンパイルについて説明します。この時点で、Web サイト プロジェクトで [発行] オプションを使用して確認します。

注意

[発行] オプションは、Web サイト プロジェクトと Web アプリケーション プロジェクトの両方に対して Visual Studio で使用できます。Visual Web Developer では、Web アプリケーション プロジェクトの発行オプションのみが提供されます。

発行オプションを使用して Book Reviews アプリケーションをデプロイする方法を見てみましょう。 まず、Visual Studio で BookReviewsWAP (Web アプリケーション プロジェクト) を開きます。 [発行] メニューの [Build BookReviewsWAP] プロジェクトを選択します。 これにより、他の構成オプションの中でも、ターゲットの場所を確認するダイアログ ボックスが表示されます (図 6 を参照)。 Web サイトのコピー ツールと同様に、ローカル フォルダー、IIS 上のローカル Web サイト、FrontPage Server Extensions をサポートするリモート Web サイト、FTP サーバー アドレスを指す場所を入力できます。 リモート Web サーバー上のファイルを展開されたファイルに置き換えるか、発行する前にリモート サイト上のすべてのコンテンツを削除するかを選択できます。 次のようにコピーするかどうかを指定することもできます。

  • 不要なソース コードとプロジェクト関連のファイルを省略する、アプリケーションの実行に必要なプロジェクト内のファイルのみ。
  • すべてのプロジェクト ファイル。ソース コード ファイルと Visual Studio プロジェクト ファイル (ソリューション ファイルなど) が含まれます。
  • ソース プロジェクト フォルダー内のすべてのファイル。プロジェクトに含まれているかどうかに関係なく、ソース プロジェクト フォルダー内のすべてのファイルがコピーされます。

フォルダーの内容 App_Data をアップロードするオプションもあります。

[Web の発行] ダイアログのスクリーンショット。[発行する前に既存のすべてのファイルを削除する] チェックボックスと [実行に必要なファイルのみ] チェックボックスが表示されています。

図 6: 変換先 Web サイトを指定する (クリックするとフルサイズの画像が表示されます)

Book Review アプリケーションの場合、リモート サイトには、Web サイトのコピー ツールを使用して BookReviewsWSP プロジェクトをコピーするときに展開されたファイルが含まれます。 したがって、既存のすべてのコンテンツを削除することから始める [発行] オプションを使用しましょう。 また、不要なソース コードとプロジェクト ファイルで運用環境を乱雑にするのではなく、必要なファイルをコピーしましょう。 これらのオプションを指定したら、[発行] ボタンをクリックします。 次の数秒間、Visual Studio は必要なファイルを展開先サイトに展開し、その進行状況を [出力] ウィンドウに表示します。

図 7 は、発行操作が完了した後の FTP サイト上のファイルを示しています。 マークアップ ページと、必要なサーバー側とクライアント側のサポート ファイルのみがアップロードされていることに注意してください。

必要なファイルのみが運用環境に発行されました

図 7: 必要なファイルのみが運用環境に発行されました (フルサイズの画像を表示する をクリックします)

[発行] オプションは、[Web サイトのコピー] ツールよりも微妙なツールではありません。 [Web サイトのコピー] ツールを使用すると、ローカル サイトとリモート サイト上のファイルを検査し、それらがどのように異なるかを確認できますが、[発行] オプションにはそのようなインターフェイスはありません。 さらに、Web サイトのコピー ツールを使用すると、1 回限りの変更、個々のファイルのアップロードまたは削除を行うことができます。 [発行] オプションでは、このようなきめ細かい制御は許可されません。代わりに、アプリケーション 全体 を発行します。 この動作には長所と短所があります。 プラス面では、[発行] オプションを使用する場合、重要なファイルのアップロードを忘れることはありません。 ただし、非常に大きな Web サイトに小さな変更を加えた場合はどうなるかを検討してください。[発行] オプションを使用すると、変更されたページを 1 つまたは 2 つ更新することはできませんが、代わりに Visual Studio がサイト全体を展開するまで待つ必要があります。

運用環境と開発環境でコンテンツが異なる特定のファイルがあることは珍しくありません。 主な例は、アプリケーションの構成ファイル Web.configです。 [発行] オプションは Web アプリケーション ファイルを盲目的にコピーするため、運用環境のカスタマイズされた構成ファイルを開発環境のバージョンで上書きします。 以降のチュートリアルでは、このトピックをさらに詳しく説明し、このような違いが存在する場合に Web アプリケーションをデプロイするためのヒントを提供します。

まとめ

Web サイトを展開するには、開発環境から運用環境に必要なファイルをコピーする必要があります。 前のチュートリアルでは、FileZilla などの FTP クライアントを使用してファイルを転送する方法を示しました。 このチュートリアルでは、Visual Studio の 2 つの展開ツール ([Web サイトのコピー] ツールと [発行] オプション) について説明しました。 Web サイトのコピー ツールは、ローカル コンピューター上のファイルを一覧表示する 2 つのパンインターフェイスと、2 台のコンピューター間でファイルを簡単にアップロードまたはダウンロードできる指定されたリモート コンピューターを備えているという点で、FTP クライアントに似ています。 [発行] オプションは、プロジェクトを明示的にコンパイルし、指定した宛先にアプリケーション全体をデプロイする、より明確なツールです。

プログラミングに満足!

もっと読む

このチュートリアルで説明するトピックの詳細については、次のリソースを参照してください。