sharepoint 2007 用に作成したイベント ハンドラー機能があり、DLL を GAC に移動し、必要なフォルダーに Feature.xml と Elements.xml を作成してから、stsadm コマンドを使用してインストールしました。私はこれをすべて行うことを避け、代わりに、実稼働環境で機能を自動的にインストールするために実行できる WSP ファイルを用意したいと考えています。
ありがとう
sharepoint 2007 用に作成したイベント ハンドラー機能があり、DLL を GAC に移動し、必要なフォルダーに Feature.xml と Elements.xml を作成してから、stsadm コマンドを使用してインストールしました。私はこれをすべて行うことを避け、代わりに、実稼働環境で機能を自動的にインストールするために実行できる WSP ファイルを用意したいと考えています。
ありがとう
アンマネージド アイテムを Visual Studio 2010 でマネージド ソリューション パッケージに変換する手順は次のとおりです。
「空の SharePoint プロジェクト」を作成します。
デプロイ ターゲットを設定します。ソリューション エクスプローラーでプロジェクト ノードをクリックし、[プロパティ]ウィンドウを確認します。Assembly Deployment Targetプロパティを ~ の間GlobalAssemblyCache
に設定しWebApplication
ます。この場合、デフォルトのままにしますGlobalAssemblyCache
。
また、 Include Assembly In Packageという便利なプロパティがあることに注意してください。これは、既定のプロジェクト アセンブリを出力パッケージから除外するために使用されます。なぜこれが必要なのですか?プロジェクトにコードが含まれていない場合: たとえば、展開用にいくつかのサードパーティ DLL をバンドルしているだけです。
SharePoint DLL 参照を置き換えます。Adam Macaulay の記事の手順に従って、v14 DLL を削除し、v12 DLL を再度追加します。
イベント レシーバー アイテムを追加します。プロジェクトを右クリックし、[追加] > [新しい項目... ] をポイントして、[イベント レシーバー] を選択します。イベント レシーバーに適切な名前を付けて、[追加] をクリックします。
イベント レシーバーを構成します。Visual Studio は (2010) SharePoint インスタンスに接続し、処理するイベントと項目の種類をウィザードで案内します。最終結果は、適切なメソッドをオーバーライドするスタブ化されたクラスと、適切にElements.xml
構成されたファイルを含むソリューション内のイベント レシーバー アイテムです。これらのファイルが両方とも既にある場合は、ウィザードを「正直に」完了する必要はありません。最初のオプションを選択し、[完了] をクリックして、Visual Studio にイベント レシーバーと対応する機能を作成させます。
コード ロジックを追加します。ソリューション エクスプローラーで、イベント レシーバー ノードを展開して、.CS
クラスと対応するを表示しElements.xml
ます。既存のファイルの内容をそれらの場所にコピーします。
パッケージ機能を構成します。ソリューション エクスプローラーで [機能] ノードを展開し、既定の機能 ( ) を見つけますFeature1.feature
。これは、イベント レシーバー アイテムを追加したときに作成されました。わかりやすくするために、機能の名前を論理的な名前に変更し、ダブルクリックして機能をデザイン モードで開きます。イベント レシーバーが右端のペイン (「機能内のアイテム」) に既に追加されているはずです。他にある場合は、機能からアイテムを選択的に追加/削除できます。// Farm
/の間にフィーチャー スコープを設定する場所は次のとおりです。Site
Web
WebApplication
また、重要なことに、フィーチャー デザイナーでは、[プロパティ] ペインにフィーチャーに設定する豊富な追加オプションがあることに注意してください。これらは他の場所からアクセスすることはできませんので、どこにあるかを頭の片隅に置いておいてください.
最後に、デザイナーの下部にある [マニフェスト] タブをクリックすると、機能マニフェストがどのように表示されるかをプレビューできます。マニフェストは、必要に応じて手動で編集できます (実質的にデザイナーを無効にします)。
パッケージ全体を構成します。ソリューション エクスプローラーで [パッケージ] ノードを展開し、既定のパッケージ ( Package.package
) を見つけます。機能と同様に、パッケージをダブルクリックしてデザイン モードで開きます。これは、機能が使用するものと同じ UI であり、このパッケージに含める機能を選択できます。イベント レシーバー機能は、右端のペイン ("パッケージ内のアイテム") に既に追加されているはずです。
繰り返しますが、機能と同じように、パッケージ デザイン モードでは、他の場所では編集できない特定のプロパティが[プロパティ] ペインで使用可能になります。最も注目すべきは、 SharePoint Product Versionから値をクリアする必要があるのはここです。
また、画面下部の [マニフェスト] タブから、同じマニフェスト プレビューを利用できます。SafeControl
これは、エントリ (必要な場合) などをチェックするのに便利です。エントリには、プロジェクトに設定されAssembly
た正しい展開ターゲット (この場合は ) が反映されている必要があります。GlobalAssemblyCache
最後に、 [詳細設定] タブでは、追加のアセンブリ/SafeControl
エントリをパッケージに指定できます。これは、追加の DLL を既定のプロジェクト DLL にバンドルする場合に役立ちます。
プロジェクトをビルドします。明らかに、それがコンパイルされることを確認したいのです!
デプロイをテストします。テストするときは、最初に 2010 インスタンスにデプロイし (便利なので)、すべてが期待どおりにインストールされていることを再確認します: DLL が正しい場所 (BIN/GAC) に配置され、適切なWeb.config
エントリが作成され、機能が適切なスコープにインストールされている、機能が適切にアクティブになるなど。
ソリューションをパッケージ化します。[ビルド] > [パッケージ] メニュー項目をポイントします。WSP は、アクティブな構成の適切な出力フォルダーに配置されます。SharePoint 2007 インスタンスへの展開をテストします。
Adam Macaulay 著の「Visual Studio 2010 ビジュアル Web パーツ プロジェクトを使用して SharePoint 2007 Web パーツを構築する」を参照してください。同じことをしたいときにこれを参考にしましたが、方法論はうまく機能します。SharePoint 2007 環境との互換性を維持しながら、多くの Visual Studio 2008 プロジェクトを 2010 プロジェクトに変換することに成功しました。
Web パーツにビジュアル デザイナーが絶対に必要でない場合(つまり、Web パーツの出力がプログラムによって作成される場合)、ビジュアル Web パーツ テンプレートを使用すると、ソリューションに余分な "がらくた" が追加されますが、これは私が嫌います。
代わりに、手順 1 で "空の SharePoint プロジェクト" を作成し、ソリューション エクスプローラーでプロジェクトを右クリックして [追加] > [新しい項目... ] をポイントし、[Web パーツ] ([ビジュアル Web パーツ] ではない) を選択します。Register
ASCX コントロールに行き着くわけではなく、宣言の更新を扱う Adam のチュートリアルの部分は無視できます。
これには、Web パーツ ファイルの正しい名前を前もって取得できるという追加の利点もあるため、一連の "VisualWebPart1xxx" ファイルの名前を変更する必要はありません。