Visual Studio デバッガーを使用して SharePoint ソリューションをデバッグできます。 デバッグを開始すると、Visual Studio によってプロジェクト ファイルが SharePoint サーバーに展開され、Web ブラウザーで SharePoint サイトのインスタンスが開きます。 次のセクションでは、Visual Studio で SharePoint アプリケーションをデバッグする方法について説明します。
デバッグの有効化
Visual Studio で SharePoint ソリューションを初めてデバッグするときに、デバッグを有効にするように web.config ファイルが構成されていないことを示すダイアログ ボックスが表示されます。 (web.config ファイルは、SharePoint サーバーのインストール時に作成されます。詳細については、「 Web.config ファイルの操作」を参照してください。このダイアログ ボックスでは、デバッグなしでプロジェクトを実行するか、web.config ファイルを変更してデバッグを有効にするかを選択できます。 最初のオプションを選択した場合、プロジェクトは正常に実行されます。 2 番目のオプションを選択した場合、web.config ファイルは次の目的で構成されます。
呼び出し履歴を有効にする (
CallStack="true")Visual Studio でカスタム エラーを無効にする (
<customErrors mode="Off" />)コンパイル デバッグを有効にする (
<compilation debug="true">)結果の web.config ファイルは次のとおりです。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
...
<SharePoint>
<SafeMode MaxControls="200"
CallStack="true"
DirectFileDependencies="10"
TotalFileDependencies="50"
AllowPageLevelTrace="false">
...
</SafeMode>
...
</SharePoint>
<system.web>
...
<customErrors mode="Off" />
...
<compilation debug="true">
...
</compilation>
...
</system.web>
...
</configuration>
変更を元に戻してデバッグを無効にするには、web.config ファイルで次の XML を変更します。
コールスタックをオフにする (
CallStack="false")Visual Studio でカスタム エラーを有効にする (
<customErrors mode="On" />)コンパイル デバッグを無効にする (
<compilation debug="false">)
F5 デバッグおよびデプロイ プロセス
SharePoint プロジェクトをデバッグ モードで実行すると、SharePoint 展開プロセスによって次のタスクが実行されます。
カスタマイズ可能なデプロイ前コマンドを実行します。
MSBuild コマンドを使用して Web ソリューション パッケージ (.wsp) ファイルを作成します。 .wsp ファイルには、必要なすべてのファイルと機能が含まれています。 詳細については、「ソリューションの 概要」を参照してください。
SharePoint ソリューションがファーム ソリューションの場合は、指定したサイト URL の IIS アプリケーション プールをリサイクルします。 この手順では、IIS ワーカー プロセスによってロックされているファイルを解放します。
パッケージの以前のバージョンが既に存在する場合は、.wsp ファイル内の以前のバージョンの機能とファイルを取り消します。 この手順では、機能を非アクティブ化し、ソリューション パッケージをアンインストールしてから、SharePoint サーバー上のソリューション パッケージを削除します。
.wsp ファイルに現在のバージョンの機能とファイルをインストールします。 この手順では、SharePoint サーバーにソリューションを追加してインストールします。
ワークフローの場合は、ワークフロー アセンブリをインストールします。 アセンブリの場所プロパティを使用して、その場所を変更できます。
スコープがサイトまたは Web の場合、SharePoint でプロジェクトの機能をアクティブにします。 ファームスコープと WebApplication スコープの機能はアクティブ化されません。
ワークフローの場合、ワークフローを SharePoint カスタマイズ ウィザードで選択した SharePoint ライブラリ、リスト、またはサイトに関連付けます。
注
この関連付けは、ウィザードで [ワークフローを自動的に関連付ける ] を選択した場合にのみ発生します。
カスタマイズ可能な配置後コマンドを実行します。
Visual Studio デバッガーを Windows SharePoint Services プロセス (w3wp.exe) にアタッチします。 プロジェクトの種類で サンドボックス ソリューション プロパティを変更でき、その値が true に設定されている場合、デバッガーは別のプロセス (SPUCWorkerProcess.exe) にアタッチします。 詳細については、「 サンドボックス ソリューションに関する考慮事項」を参照してください。
SharePoint ソリューションがファーム ソリューションの場合は、JavaScript デバッガーを起動します。
Web ブラウザーに適切なライブラリ、リスト、またはサイト ページを表示します。
各タスクが完了すると、Visual Studio の [出力] ウィンドウにステータス メッセージが表示されます。 タスクを完了できない場合、Visual Studio の [エラー一覧] ウィンドウにエラー メッセージが表示されます。
SharePoint プロジェクトの機能
機能は、サイト定義を使用してサイトの変更を簡略化する、移植可能でモジュール式の機能ユニットです。 また、特定のスコープに対してアクティブ化でき、ユーザーが特定の目標やタスクを達成するのに役立つ Windows SharePoint Services (WSS) 要素のパッケージでもあります。 テンプレートは機能としてデプロイされます。
デバッグ モードでプロジェクトを実行すると、配置プロセスによって 、機能 ディレクトリ の%COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES にフォルダーが作成されます。 フィーチャー名には、 プロジェクト名_Featurex という形式 (TestProject_Feature1など) があります。
フィーチャー ディレクトリ内のソリューションのフォルダーには、 機能定義 ファイルと ワークフロー定義 ファイルが含まれています。 フィーチャー定義ファイル (Feature.xml) には、プロジェクトの Feature 内のファイルが記述されています。プロジェクト定義ファイル (Elements.xml) には、プロジェクト テンプレートが記述されています。 Elements.xmlはソリューション エクスプローラーにありますが、ソリューション パッケージの作成時に Feature.xml が生成されます。 これらのファイルの詳細については、「 SharePoint プロジェクトテンプレートとプロジェクト項目テンプレート」を参照してください。
ワークフローのデバッグ
ワークフロー プロジェクトをデバッグすると、Visual Studio はワークフロー テンプレートを (その種類に応じて) ライブラリまたはリストに追加します。 その後、ワークフロー テンプレートを手動で開始するか、項目を追加または更新します。 その後、Visual Studio を使用してワークフローをデバッグできます。
注
他のアセンブリへの参照を追加する場合は、それらのアセンブリがグローバル アセンブリ キャッシュ (GAC) にインストールされていることを確認します。 そうしないと、ワークフロー ソリューションは失敗します。 アセンブリをインストールする方法については、「 ドキュメントまたはアイテムでワークフローを手動で開始する」を参照してください。
ただし、デプロイ プロセスはワークフローを開始しません。 SharePoint Web サイトからワークフローを開始する必要があります。 また、Microsoft Office Word 2010 などのクライアント アプリケーションを使用するか、別のサーバー側コードを使用してワークフローを開始することもできます。 SharePoint カスタマイズ ウィザードで指定されている方法のいずれかを使用します。
たとえば、ワークフローを手動で開始できるように指定した場合は、ライブラリまたはリスト内のアイテムから直接ワークフローを開始します。 ワークフローを手動で開始する方法の詳細については、「 ドキュメント アイテムでワークフローを手動で開始する」を参照してください。
機能イベント レシーバーのデバッグ
既定では、Visual Studio SharePoint アプリケーションを実行すると、その機能が SharePoint サーバーで自動的にアクティブ化されます。 ただし、これにより、機能イベント レシーバーをデバッグするときに問題が発生します。これは、機能が Visual Studio によってアクティブ化されると、デバッガーとは異なるプロセスで実行されるためです。 これは、ブレークポイントなどの一部のデバッグ機能が正しく機能しないことを意味します。
SharePoint で機能の自動アクティブ化を無効にし、機能イベント レシーバーの適切なデバッグを許可するには、デバッグする前にプロジェクトの [アクティブな展開構成] プロパティの値を [アクティブ化なし ] に設定します。 次に、Visual Studio で SharePoint アプリケーションのデバッグを開始した後、SharePoint で機能を手動でアクティブ化します。 機能をアクティブ化するには、SharePoint で [サイトの操作] メニューを開き 、[サイトの設定] を選択し、[ サイト機能の管理 ] リンクを選択し、機能の横にある [アクティブ化 ] ボタンを選択して、通常どおりデバッグを続行します。
拡張デバッグ情報を有効にする
Visual Studio プロセス (devenv.exe)、Visual Studio SharePoint ホスト プロセス (vssphost4.exe)、SharePoint、WCF レイヤーの間で複雑な相互作用が発生する場合があるため、ビルド中、配置中などに発生するエラーの診断は困難な場合があります。 このようなエラーを解決するために、拡張デバッグ情報を有効にすることができます。 これを行うには、Windows レジストリの次のレジストリ キーに移動します。
HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\SharePointTools
"EnableDiagnostics" REG_DWORD 値がまだ存在しない場合は、手動で作成します。 "EnableDiagnostics" の値を "1" に設定します。
このキー値を 1 に設定すると、Visual Studio で実行中にプロジェクト システム エラーが発生するたびに、スタック トレース情報が 出力 ウィンドウに表示されます。 拡張デバッグ情報を無効にするには、EnableDiagnostics を 0 に戻すか、値を削除します。
その他の SharePoint レジストリ キーの詳細については、「 Visual Studio での SharePoint ツールの拡張機能のデバッグ」を参照してください。