2

共有ポイント機能をアクティブ化またはインストールするときに、ユーザー/管理者にプロンプ​​トを表示できるかどうか知っている人はいますか?

カスタム Web パーツを作成していて、別のデータベースに接続しています。.wsp ファイルをインストールするとき、または機能を有効にするときに、管理者が接続文字列を選択または入力できるようにしたいと考えています。

FeatureActivated イベントの内部を調べて、SPWebConfigModification クラスを使用して実際にファーム内の web.config ファイルに接続文字列を書き込むことを考えています。

web.configs を手作業で編集したり、文字列を DLL にハード コードしたりしたくありません。

共有ポイント内で接続文字列を処理する他の方法がある場合は、それらにも興味があります。

4

2 に答える 2

1

残念ながら、機能の有効化プロセスを介してユーザーを取得できる画面に切り替える方法はありません。あなたへのいくつかのコメント:

  1. 接続文字列はインストールごとに異なると想定しているため、ソリューションに直接含める方法はありません。
  2. インストール中にプログラムでこれを構築できなかったと思います。

したがって、ユーザー入力を取得する何らかの方法が必要です。以下にいくつかのオプションを示します。

  1. これは Web パーツのプロパティである可能性がありますが、これは Web パーツが追加されるたびに設定することを意味し、それらの設定を個別に維持する必要があります。
  2. 独自の _layouts 設定画面を作成できます (良い投稿: http://community.zevenseas.com/Blogs/Robin/archive/2008/03/17/lcm-creating-custom-application-page-and-using-the -propertybag-more-detailed.aspx )、そこからユーザーはプロパティを維持し、Web プロパティ バッグまたは Web.Config 内に保存できます。私はできる限り Web.Config を使用しないようにしていますが、どうしてもこの方法を使用したい場合は、必ず SPWebConfigModification クラスを使用してください (このすばらしいブログを読んでください: http://www.crsw.com/mark/Lists/投稿/Post.aspx?ID=32 )
  3. 最後に、私がよく使用する手法は、構成情報を SharePoint リストに格納することです。Chris O'Brien には、そのための優れたフレームワークがあります: http://www.codeplex.com/SPConfigStore

お役に立てば幸いです、ダニエル

于 2008-08-13T12:50:32.333 に答える
0

いいですね。これらの可能な解決策を見ていきます。

すべてが同じconnectionStringを使用する単一のソリューション内に複数のWebパーツを展開しているため、#1は機能しないと思います。

#3は非常にクリーンなソリューションのように聞こえます。構成項目がキャッシュされていることがわかります。接続文字列を保存する必要がある場合、その文字列が必要になるたびに SP ルックアップにヒットすることはないようです。

解決策を探しているときに、別の方法に出くわしました。

彼らのコードを掘り下げると、アプリケーション固有の値を受け入れるインストーラーを作成し、その値を FeatureTemplate.xml ファイルに追加して、レシーバーの SPFeatureReceiverProperties オブジェクトに渡すように見えます。

私はこの方法に取り組み始めようとしていましたが、#3の方が良いと思います。

ありがとう、キース

于 2008-08-13T13:53:19.977 に答える