[方法] 適切なターゲット フレームワークおよび CPU を設定する
最終更新日: 2010年4月30日
適用対象: SharePoint Foundation 2010
このトピックは、Microsoft Visual Studio の Microsoft SharePoint Foundation 開発プロジェクトで適切なターゲット CPU プラットフォームと適切なターゲット Microsoft .NET Framework を設定する方法について説明します。
ターゲット設定のルール
ターゲット Microsoft .NET Framework および CPU プラットフォームを設定するルールは以下のとおりです。
SharePoint Foundation のクライアントあるいはサーバー オブジェクト モデルによって作成したすべての Visual Studio プロジェクトは、Microsoft .NET Framework 3.5 をターゲット フレームワークとして設定する必要があります。このルールは Visual Studio のプロジェクトの種類が [SharePoint 2010] のプロジェクトの種類の 1 つではない場合でも適用されます。
SharePoint Foundation のサーバー オブジェクト モデルによって作成されたすべての Visual Studio プロジェクト、従って [SharePoint 2010] のプロジェクトの種類のいずれかとなる場合は、ターゲット CPU プラットフォームとして [x64] あるいは [Any CPU] を設定する必要があります。両方のアプローチに利点と欠点があります。
[x64] は、より正確な選択といえます。その理由は、SharePoint Foundation サーバー オブジェクトモデルによって開発したソリューションは、あらゆる CPU をターゲットにすることはできないからです。しかし、[x64] をターゲットにするには、[x64] をターゲットにする各 Visual Studio ソリューションで、「CPU プラット フォームターゲットとして x64 を有効にするには」というタイトルの手順 (このトピックで後述) を繰り返す必要があります。さらに、System.Data.dll や mscorlib.dll のように頻繁に呼び出される Microsoft アセンブリはそれ自体が [Any CPU] でコンパイルされているため、"参照されたアセンブリが異なるプロセッサを対象にしている" というコンパイラ警告 (エラーではありません) が表示されることがあります。
[Any CPU] は、オプションとして常に使用可能で、有効にするために特殊な手順を必要としないため、もっとも簡単な選択肢です。しかし、結果のアセンブリが x86 コンピューターでも使用できるという誤った印象を与える点で紛らわしいといえます。さらに、[Any CPU] で作成されたアセンブリは、[x64] で作成されたアセンブリよりも多くのディスク容量を必要とすることがあります。
注意 サーバー オブジェクト モデルを [x86] CPU プラットフォームにターゲットにするようにプロジェクトを設定すると、通常、コンパイラ エラーは発生しません。しかし実行時エラーと予想外の実行時動作が発生することがあります。たとえば、SharePoint Foundation_SPFarm オブジェクトへの参照を取得するコードが null を返し、Web アプリケーションのような子オブジェクトへの参照を取得するコードが FileNotFoundException をスローします。
クライアントオブジェクト モデルに対して作成する Visual Studio プロジェクトは、通常、ターゲット CPU プラットフォームとして [Any CPU] を設定する必要があります。その理由は、通常、クライアント アプリケーションは、x86 と x64 コンピューターの両方で実行させる必要があるからです。しかし、どちらかの種類のクライアント コンピューターでのみアプリケーションを実行させるには、[x86] あるいは [x64] を指定することができます。[x64] をターゲットにするには、このトピックで後述する「CPU プラット フォームターゲットとして x64 を有効にするには」の手順を行う必要があります。
Visual Studio ソリューションには複数のプロジェクトを含めることができます。そして同じソリューション内に、[SharePoint 2010] のプロジェクトの種類に加えて、[SharePoint 2010] のプロジェクトの種類に含まれないその他のプロジェクトを持つこともできます。[SharePoint 2010] プロジェクトが別の種類のプロジェクトを参照する、あるいはその逆の場合は、それらは同じターゲット CPU プラットフォームを持つ必要があります。たとえば、ソリューションが SharePoint Foundation サーバー上で実行するコンソール アプリケーションの場合、[SharePoint 2010] のプロジェクトの種類の、自動化された実装および取り消し機能を活用できます。この場合、Visual Studio ソリューションは空の SharePoint プロジェクトとコンソール アプリケーションプロジェクトを持つことができます。[パッケージ プロパティ] ウィンドウの [詳細設定] タブの [追加アセンブリ] フィーチャーを使用することで、SharePoint プロジェクトのパッケージにコンソール アプリケーションの実行可能ファイルを追加します。コンソール アプリケーション プロジェクトを追加するとき、ターゲット CPU プラットフォームとして [x86] が既定になりますが、(すべての SharePoint 2010 のプロジェクトの種類のような) [空の SharePoint プロジェクト] は [Any CPU] が既定になります。パッケージに実行可能ファイルを追加した後、2 つのプロジェクトが同じターゲット CPU プラットフォームに設定されるまで、コンパイラ エラーが発生します。[Any CPU] をターゲットとするようにコンソール アプリケーションを変更するか、あるいは [x64] をターゲットとするよう両方のプロジェクトを変更する必要があります。
CPU プラットフォーム ターゲットとして x64 を有効にするには
プロジェクトが作成された後で、Visual Studio ツールバー上で、[ソリューション プラットフォーム] ドロップダウン リスト ボックスを開きます。
[構成マネージャー] をクリックします。
[構成マネージャー] ダイアログ ボックスで、[アクティブ ソリューション プラットフォーム] ドロップダウン リスト ボックスを開き、[<新規> …] をクリックします。
[新しいソリューション プラットフォーム] ダイアログ ボックスで、[新しいプラットフォームを入力または選択します] ドロップダウン リスト ボックスから [x64] を選択します。
[設定のコピー元] ドロップダウン リスト ボックスで [x86] を選択します。
[OK] をクリックします。
[構成マネージャー] ダイアログ ボックスで、ソリューション内のすべてのプロジェクトについて [ビルド] 列のチェックボックスのチェックがオンとなっていることを確認してください。
[閉じる] をクリックします。