SharePoint 2010 サーバー上でコンソール アプリケーションを作成する際の注意事項

こんにちは SharePoint サポートの江口です。

今回は、SharePoint 2010 サーバー上で、Visual Studio 2010 を使用してコンソール アプリケーションを作成する際の注意事項について記載します。

SharePoint 2010 の開発では、64 ビット版の Windows Server 2008 SP2 または R2上など* で、Visual Studio 2010 という新しい環境で開発することになります。

本記事が SharePoint 2010 の開発をこれから始める方にとってお役に立つことが出来たら幸いです。

 

*開発目的の場合、制限はありますが SharePoint Foundation 2010 を Windows 7 および Windows Vista Service Pack 2 にもインストールできます。

 

以下の説明では、実際にプログラムをステップバイステップで作成していき、注意点をご案内しています。

注意点をまとめたものは本記事の下部に記載しましたので、まとめを確認したい方は、お手数ですが、本記事下部をご覧ください。

それでは、ステップバイステップで、SharePoint オブジェクトを呼び出すコンソールアプリケーション (作成済みのSharePoint サイト からリストの一覧を列挙する) を作成してみましょう。

前提条件

1. サーバー上に SharePoint サイトが作成済みであること

2. Visual Studio 2010 をインストール済みであること

作成の流れ

1) コンソール アプリケーション プロジェクトの作成

2) Microsoft.SharePoint モジュールの参照

3) プログラムの作成

4) デバッグの実行

1) コンソールアプリケーション プロジェクトの作成

1-1. SharePoint 2010 サーバー上で、Microsoft Visual Studio 2010 を起動します。

1-2. メニュー バーから [ファイル] - [新規作成] - [プロジェクト] をクリックします。

1-3. 対象のフレームワークを .NET Framework3.5 に指定します。

"新しいプロジェクト" ウィンドウにて、.NET Framework 3.5 選択する

 

1-4. "新しいプロジェクト" ウィンドウにて、"インストールされたテンプレート" から [Visual C#] を展開して [Windows] をクリックします。

1-5. テンプレートの一覧から、"コンソール アプリケーション" を選択して、任意の名前を入力して [OK]ボタン をクリックします。

(ここでは以下のような設定内容でプロジェクトを作成します)

"新しいプロジェクト作成" ウィンドウ にて、コンソール アプリケーションを選択する。

 

 

2) Microsoft.SharePoint モジュールの参照

次に、SharePoint オブジェクト モデルを呼び出せるように Microsoft.SharePoint モジュールを読み込みを読み込みます。

2-1. メニュー バーから [プロジェクト] - [参照の追加] をクリックします。

2-2. "参照の追加" ウィンドウにて、".NET" タブをクリックします。

2-3. コンポーネントの一覧から Microsoft.SharePoint を選択して [OK] をクリックします。

"参照の追加" ウィンドウにて、Microsoft.SharePoint モジュールを選択・追加する。

2-4. "ソリューション エクスプローラー" にある [参照設定] を展開して、Microsoft.SharePoint モジュールが追加されたことを確認します。

 

 

"ソリューション エクスプローラー" にて、Microsoft.SharePoint モジュールが追加されたことを確認する

 

プロジェクト作成時の注意点

上記手順にてプロジェクトを作成・モジュールの参照を実施した場合は問題ありませんので、続けて以下の手順 3. プログラムの作成へ進んでください。

こちらの項目では、プロジェクト作成時の注意点についてご紹介します。

プロジェクト作成時に対象のフレームワークを .NET Framework 4 を選択した場合、モジュールを参照する際に、上記手順 2-3. のコンポーネント一覧に Microsoft.SharePoint が表示されません。

これは、Microsoft.SharePoint モジュールが .NET Framework 4 に対応していないことが理由です。

対象のフレームワークを .NET Framework 4 を選択した状態でプロジェクトを作成した場合、以下の手順にて対象のフレームワークを変更することができますので、ご確認ください。

1) プロジェクト作成後、メニューバーから [表示] - [プロパティウィンドウ] をクリックします。

2) "プロパティ ウィンドウ" にて、"アプリケーション" タブにある [対象のフレームワーク] の項目に ".NET Framework 3.5" を選択します。

3) "ターゲット フレームワークの変更" に関するダイアログが表示された場合は、内容を確認後 [はい] をクリックします。

 

対象のワークフローに .NET Framework 3.5 を選択する。

 

これで、参照の追加から Microsoft.SharePoint モジュールが追加できるようになりました。

上記手順 2-1 から 2-4 を参照していただき、Microsoft.SharePoint モジュールを参照に追加してください。

 

備考 : .NET Framework 4.0 でプロジェクトを作成し、後から .NET Framework 3.5 を適用すると、 .NET Framework 4.0 で標準モジュールとされたMicrosft.CSharp モジュールは、ターゲット フレームワークが異なるため "ソリューション エクスプローラ" にて警告マークが付いています。今回はこのモジュールを使用しないので、Microsft.CSharp を右クリックして、プルダウンメニューから [削除] をクリックして削除してください。

3) プログラムの作成

3-1. "ソリューション エクスプローラー" にある "Program.cs" を表示します。

3-2. 既存の SharePoint サイトにあるリスト一覧を取得するプログラムを記述します。

プログラム例:

 

using System;

using Microsoft.SharePoint;

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            using (SPSite site = new SPSite("https://server_name/ "))

            {

                using (SPWeb web = site.OpenWeb())

                {

                    foreach (SPList list in web.Lists)

                    {

                        Console.WriteLine(list.Title);

                    }

                }

            }

        }

    }

}

 

補足: SPSite("https://server_name/ ")) には、作成済みの SharePoint サイトのアドレスを入力してください。

 

4) デバッグの実行

次に、作成したプログラムに対してデバッグを実行しますが、ここで注意事項があります

コンソールアプリケーションは既定でプラットフォームターゲットが x86 に設定されています。

SharePoint 2010サーバーは 64 ビット環境ですので、プラットフォーム ターゲットを x86 から x64 または Any CPU に変更する必要があります。

プラットフォームターゲットを変更せずにデバッグを実行した場合、 FileNotFoundException が発生します。

ターゲットプラットフォームに間違いがあると、FileNotFoundException が発生する

以下の手順にて、プラットフォームターゲットを x64 または Any CPU に変更します。

1. メニューバーから [表示] - [プロパティ ウィンドウ] をクリックします。

2. "プロパティ ウィンドウ" にて、"ビルド" タブ内にある [プラットフォーム ターゲット] を "x64" または "Any CPU" に変更します。

プロパティウィンドウにて、"プラットフォーム ターゲット" を "x64" または "Any CPU" 変更する

これで、デバッグが実行できるようになりました。

以下の手順にてデバッグを実行します。

3. メニューバーから [デバッグ] - [デバッグ開始] をクリックします。

4. コンソールが起動して、指定した SharePoint サイトのリストのタイトルが列挙されることを確認します。

SharePoint サイトのリストのタイトルが列挙される

作成済みのSharePoint サイト からリストの一覧を列挙するようなコンソールアプリケーションの作成手順はこれで終了です。

以下に、上記手順内でご説明した注意ポイントをまとめて記載いたしましたので、ご確認ください。

SharePoint オブジェクトモデルを操作するコンソールアプリケーション作成時の注意ポイント

・プロジェクト作成時に、対象のフレームワークが .NET Framework 3.5 であることを確認

・プロジェクトのプロパティにて、プラットフォーム ターゲットが x64 または Any CPU であることを確認

参考情報

SharePoint 2010 では開発者に対してこれまで以上に情報開示や自習書などの資料を整えております。

以下にご参考いただくために SharePoint 開発者に向けた弊社技術情報を記載いたしましたので、ご要望に合わせてご確認ください。

タイトル : SharePoint 開発者向け技術情報

アドレス : https://msdn.microsoft.com/ja-jp/sharepoint/aa905688

様々な情報を含むポータルサイトです。

 

タイトル : SharePoint 2010: プロフェッショナル デベロッパー向け評価ガイドおよびチュートリアル

アドレス : https://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=cffb14e8-88a9-43bd-87aa-4792ab60d320

開発者向けの資料 (100 ページ以上) です。

 

タイトル : Microsoft SharePoint 2010 SDK

アドレス : https://msdn.microsoft.com/ja-jp/library/ee557253(en-us,office.14).aspx

本記事で使用した SharePoint 2010 のクラス ライブラリに関する詳細です。

 

タイトル : SharePoint Foundation の開発を開始する

アドレス : https://msdn.microsoft.com/ja-jp/library/ee539741.aspx

SharePoint 2010 の開発を開始にあたり、役立つ概念および実践的な情報です。

タイトル : サーバーとサイトのアーキテクチャ : オブジェクト モデルの概要

アドレス : https://msdn.microsoft.com/ja-jp/library/ms473633.aspx

開発を進めるにあたり、理解しておきたいオブジェクトモデルの概要の情報です。

タイトル : オブジェクトの破棄

アドレス : https://msdn.microsoft.com/ja-jp/library/ee557362.aspx

開発を進めるにあたり、理解しておきたい破棄可能な SharePoint オブジェクト モデルの使用方法の概要の情報です。

タイトル : [方法] コンソール アプリケーションを作成する

アドレス : https://msdn.microsoft.com/ja-jp/library/ms438026.aspx

本記事の内容は、上記内容に図と注意事項を加えた内容です。関連項目を含めご確認ください。

 

(※ 2011 年 11 月 17 日 追記)

タイトル : コンソールアプリケーションを実行する際の権限について

アドレス : https://blogs.technet.com/b/sharepoint_support/archive/2011/11/17/3465737.aspx

本ブログ記事はコンソールアプリケーションを実行する際の権限について記載しております。合わせてご確認ください。