このトピックでは、SharePoint ソリューションをパッケージ化して展開するときに発生する可能性があるさまざまな問題について説明します。
拡張デバッグを有効にする
Visual Studio、SharePoint、およびその他のレイヤー間で診断するには、EnableDiagnostics レジストリ キーを使用してスタック トレースを表示できます。 詳細については、「 SharePoint ソリューションのデバッグ」を参照してください。
ソリューション パッケージにプロジェクト出力を追加する
パッケージ デザイナーを使用して、プロジェクト出力をパッケージに追加できます。 ただし、プロジェクトの出力を追加するときは、プロジェクトのプラットフォームが SharePoint ソリューションのプラットフォームと一致していることを確認してください。 SharePoint サーバーに展開するアセンブリには、 任意の CPU プラットフォーム ターゲットを使用することをお勧めします。 詳細については、 コンパイル ページ、プロジェクト デザイナー (Visual Basic) と [コンパイラの詳細設定] ダイアログ ボックス (Visual Basic) を参照してください。
検証の警告とエラー
Visual Studio の SharePoint 開発ツールは、検証手順を実行して、ソリューション パッケージの形式が正しいことを確認します。 機能とパッケージのカスタム検証手順を作成することもできます。 詳細については、「 方法: SharePoint ソリューションのカスタム機能およびパッケージ検証ルールを作成する」を参照してください。
デプロイの競合の解決
SharePoint ソリューションを展開するときに、サーバー上のアイテムがソリューション パッケージ内のアイテムと同じ名前、URL、または ID を持つ場合、競合が発生することがあります。 [配置の競合解決] プロパティを変更して、モジュール、Web パーツ、リスト インスタンス、およびコンテンツ タイプの競合を解決、報告、または無視することができます。
次の表に、 展開の競合解決 プロパティの設定を示します。
| 価値 | Description |
|---|---|
| 自動 | 競合を検出し、競合を自動的に解決します。 |
| Prompt | 競合を検出し、競合を解決する前に開発者に報告します。 |
| None | 衝突を検出しません。 |
F5 のデプロイの違い
Visual Studio を使用してテストとデバッグのために SharePoint プロジェクトをローカル SharePoint サーバーに展開する場合、Visual Studio によって実行される追加の手順がいくつかあります。
展開手順中にインターネット インフォメーション サービス (IIS) をリセットします。
ワークフローを自動的に関連付けます。
パッケージ デザイナーの階層に従って、機能のアクティブ化順序を設定します。
カスタム展開手順を追加して、 F5 の動作をさらに変更できます。 詳細については、「 チュートリアル: SharePoint プロジェクトのカスタム展開手順を作成する」を参照してください。
ビジュアル Web パーツを展開するときに SharePoint ページの表示を遅らせる
Windows Vista、Windows 7、または Windows Server 2008 の Bin フォルダーに Visual Web パーツを展開する場合、SharePoint ページが表示されるまでに時間がかかります。 Bin ディレクトリなどの最上位 ASP.NET ディレクトリ内のファイルを変更すると、Web アプリケーション全体が再コンパイルされます。 これにより、SharePoint ページがレンダリングされるまでに最大 25 秒の遅延が発生する可能性があります。
エラーメッセージ
なし。
解決策
この問題を回避するには、次の手順を実行します。
Microsoft サポート記事「修正プログラム:Windows Vista および Windows Server 2008 用 IIS 7.0 の ASP.NET で 2 つの問題を修正する修正プログラムを使用できます。」で説明されているように、更新プログラムのKB967535をインストールします。
Web.config ファイルに次の行を追加します。
<compilation batch="false" optimizeCompilations="true">
SharePoint プロジェクトの展開が失敗し、"ソリューションで cab ファイルを抽出できませんでした" というエラーが表示される
SharePoint プロジェクト項目の名前にかっこが含まれている場合、そのソリューションは配置時にエラーで失敗します。
エラーメッセージ
デプロイ手順 'ソリューションの追加' でエラーが発生しました:ソリューション内の cab ファイルを抽出できませんでした。
解決策
この問題を回避するには、SharePoint プロジェクトの項目名からかっこを削除します。
ビジュアル Web パーツを別の Web アプリケーション上のサイトに展開するときにエラーが表示される
ビジュアル Web パーツを現在展開されているサイト以外の Web アプリケーション上のサイトに初めて展開すると (ビジュアル Web パーツの SiteUrl プロパティを変更することで)、エラーが発生します。
エラーメッセージ
デプロイ手順 'ソリューションの追加' でエラーが発生しました:ID [#] の機能がこのファームに既にインストールされています。 force 属性を使用して、機能を明示的に再インストールします。
解決策
このエラーは、SharePoint で視覚的な Web パーツ機能が取り消される方法が原因で発生します。 ビジュアル Web パーツを正常にデプロイするには、 F5 キーを選択してソリューションをもう一度デプロイします。
入れ子になったユーザー コントロールを展開するときに警告が表示される
この警告は、入れ子になったユーザー コントロールを含む SharePoint ソリューション (ユーザー コントロールを含むビジュアル Web パーツや、ビジュアル Web パーツまたは別のユーザー コントロールを含むユーザー コントロールなど) を展開するときに発生します。 この警告は、ツールボックスからコントロールをドラッグするか、ソース ビューで @Register ディレクティブを使用してデザイナーにコントロールを追加した場合に発生します。
エラーメッセージ
警告 1 要素 '[コントロール名]' が既知の要素ではありません。 これは、Web サイトでコンパイル エラーが発生した場合、または web.config ファイルが見つからない場合に発生する可能性があります。
解決策
Visual Studio プロジェクト システムが入れ子になったユーザー コントロールを認識していない場合、IntelliSense を提供できず、警告が出力されます。 プロジェクトシステムは、プロジェクトがビルドされておらず、デザイナーが閉じて再び開いていない場合、または自動取り消しオプションが有効になっている場合、入れ子になったユーザー コントロールを認識しません。これにより、デバッグ後にユーザー コントロールが SharePoint ハイブから取り消されます。
この警告を削除するには、プロジェクトをビルドしてからデザイナーを閉じてから再度開くか、プロジェクトの自動取り消しオプションを無効にします。 これを行うには、[プロジェクトのプロパティ] ダイアログ ボックスの [SharePoint] タブの [デバッグ後に自動取り消し] チェック ボックスをオフにします。