Visual Studio または Visual Web Developer を使用した SQL Server Compact を含む ASP.NET Web アプリケーションの配置: プロジェクトのプロパティの構成 - 4/12
著者: Tom Dykstra
このチュートリアル シリーズでは、Visual Studio 2012 RC または Visual Studio Express 2012 RC for Web を使用して、SQL Server Compact データベースを含む ASP.NET Web アプリケーション プロジェクトを、配置 (発行) する方法について説明します。 Web 公開の更新をインストールすれば、Visual Studio 2010 を使用することもできます。 シリーズの概要については、シリーズの最初のチュートリアルを参照してください。
Visual Studio 2012 の RC リリース以降に導入された配置機能の紹介や、SQL Server Compact 以外の SQL Server エディションの配置方法、Azure App Service Web Apps への配置方法などを解説したチュートリアルは、「Visual Studio を使用した ASP.NET Web 配置」をご覧ください。
概要
一部の配置オプションは、プロジェクト ファイル (.csproj または .vbproj ファイル) に格納されているプロジェクトのプロパティ内で構成されます。 ほとんどの場合、これらの設定は既定値のままで問題ありませんが、必要に応じて、Visual Studio に組み込まれている [プロジェクトのプロパティ] UI を使用してこれらの設定を変更することができます。 このチュートリアルでは、[プロジェクトのプロパティ] の配置設定を確認します。 また、空のフォルダーを配置するためのプレースホルダー ファイルも作成します。
[プロジェクトのプロパティ] ウィンドウでの配置設定の構成
以下のチュートリアルで説明するように、配置時の動作に影響するほとんどの設定は、発行プロファイルに含まれています。 注意すべきいくつかの設定は、[プロジェクトのプロパティ] ウィンドウの [パッケージ化/発行] タブにあります。 これらの設定はビルド構成ごとに指定されます。つまり、リリース ビルドとデバッグ ビルドでそれぞれ異なる設定にすることができます。
ソリューション エクスプローラーで、ContosoUniversity プロジェクトを右クリックし、[プロパティ] を選択した後、[Web のパッケージ化/発行] タブを選択します。
ウィンドウが表示されると、このソリューションで現在アクティブになっているビルド構成の設定が既定で表示されます。 [構成] ボックスに [アクティブ (リリース)] が表示されない場合は、リリース ビルドの構成の設定を表示するため、[リリース] を選択します。 リリース ビルドをテスト環境と運用環境の両方に配置します。
[アクティブ (リリース)] または [リリース] を選択すると、このリリース ビルドの構成を使って配置した場合に有効な値が表示されます。
- [配置する項目] ボックスでは、[このアプリケーションの実行に必要なファイルのみ] が選択されています。 その他のオプションは、[このプロジェクトに含まれるすべてのファイル] または [このプロジェクト フォルダー内のすべてのファイル] です。 既定の選択を変更せずそのままにしておくことで、たとえばソース コード ファイルが配置されることを避けることができます。 SQL Server Compact のバイナリ ファイルを含むフォルダーをプロジェクトに含める必要があったのは、この設定が理由です。 この設定の詳細については、「ASP.NET Web アプリケーション プロジェクト配置の FAQ」の「My Project フォルダーのすべてのファイルが配置されない理由」を参照してください。
- [生成されたデバッグ シンボルを除外する] が選択されています。 このビルド構成を使用する場合は、デバッグは行いません。
- [App_Data フォルダーからファイルを除外する] が選択されていません。 メンバーシップ データベースの SQL Server Compact ファイルは、そのフォルダー内にあり、配置する必要があります。 データベースの変更を含まない更新プログラムを配置する場合は、このチェックボックスを選択します。
- [公開前に、このアプリケーションをプリコンパイルする] が選択されていません。 ほとんどのシナリオでは、Web アプリケーション プロジェクトをプリコンパイルする必要はありません。 このオプションの詳細については、「プロジェクト プロパティの [パッケージ/Web の発行] タブ」と[プリコンパイルの詳細設定] ダイアログに関するページをご覧してください。
- [[SQL のパッケージ/発行] タブで構成されているすべてのデータベースを含める] が選択されていますが、[SQL のパッケージ/発行] タブを構成していないため、このオプションは効果がありません。このタブは、SQL Server データベースを展開するための唯一のオプションとして使用されていた、従来のデータベース展開方法のためのものです。 SQL Server への移行に関するチュートリアルの [SQL のパッケージ/発行] タブを使用します。
- これらのチュートリアルではワンクリック発行を使用しているため、[Web 配置のパッケージの設定] セクションは適用されません。
[構成] ドロップダウン ボックスを [デバッグ] に変更して、デバッグ ビルドの既定の設定を表示します。 これらの値は同じですが、デバッグ ビルドを配置する際にデバッグを行えるように、[生成されたデバッグ シンボルを除外する] がオフになっている点が異なります。
Elmah フォルダーが配置されていることを確認する
前のチュートリアルで説明したように、Elmah NuGet パッケージは、エラー ログとレポートの機能を提供します。 Contoso University のアプリケーションでは、Elmah は、Elmah という名前のフォルダーにエラーの詳細を格納するよう構成されています。
配置時に特定のファイルまたはフォルダーを除外することは一般的な要件です。また別の例は、ユーザーがファイルをアップロードできるフォルダーです。 開発環境で作成されたログ ファイルやアップロードされたファイルが運用環境に配置されないようにする必要があります。 また、運用環境に更新プログラムを配置する場合は、運用環境に存在するファイルが配置のプロセスによって削除されないようにします。 (配置オプションの設定方法によっては、配置先サイトに存在するファイルが配置時にソース サイトに存在しない場合、Web 配置によって配置先からそのファイルが削除されます。)
このチュートリアルで既に説明したように、[Web のパッケージ化/発行] タブの [配置する項目] オプションは、[このアプリケーションの実行に必要なファイルのみ] に設定されています。 その結果、狙いどおりに、開発中に Elmah によって作成されたログ ファイルは配置されません。 (配置するには、プロジェクトに含めた上で、[ビルド アクション] プロパティを [コンテンツ] に設定する必要があります。詳細については、「ASP.NET Web アプリケーション プロジェクト配置の FAQ」の「My Project フォルダーのすべてのファイルが配置されない理由」を参照してください。) ただし、コピーするファイルが少なくとも 1 つ存在しない限り、Web 配置では配置先サイトにフォルダーは作成されません。 そのため、フォルダーがコピーされるように、プレースホルダーとして .txt ファイルをフォルダーに追加します。
ソリューション エクスプローラーで、Elmah フォルダーを右クリックし、[新しい項目の追加] を選択した後、Placeholder.txt という名前のファイルを作成します。 それに、「これは、フォルダーが確実に配置されるためのプレースホルダー ファイルです。」というテキストを入力し、ファイルを保存します。 こうするだけで、.txt ファイルの [ビルド アクション] プロパティが既定で [コンテンツ] に設定されるため、このファイルとそれが格納されたフォルダーは Visual Studio によって確実に配置されます。
これで、配置のセットアップ タスクがすべて完了しました。 次のチュートリアルでは、Contoso University サイトをテスト環境に配置し、そこでテストを行います。