背景:ClickOnceでデプロイされたWPFアプリがあります。このアプリはWCFサービスと通信し、WCFサービスは独自のSQLデータベースとクライアントOMを介してSharePointと通信します。WCFとClickOnceをセットアップするために、セットアッププロジェクトがあります。このプロジェクトは、インストールユーザーからサーバーパスとデータベース接続文字列に関する詳細を取得し、インストーラークラスを起動して、構成XMLの記述やそのためのClickOnceストラップの更新などの楽しい作業を行います。デプロイメントURLなど。
エンドユーザーがSharePointリストインターフェイスを使用して、データベース内のめったに変更されないテーブル値の一部を構成できるように、このインストーラーを介してSharePointにいくつかのBDCモデルを追加する必要があります。(可能な限り「ワンクリック」でインストールプロセスを実行することは、クライアントによって課せられる要件です。)
Visual Studio 2010ソリューションにBDCモデルプロジェクトを含めると、BDC関連のパッケージ化されたWSPを取得できます。これは素晴らしいサウンドです...
ただし、これに関する1つの問題は、このWSPにパッケージ化されるfeature.xmlにあります。このハードコードされた行が表示されます。
<Property Key="SiteUrl"
Value="http://BuildingWorkstationSharePointInstanceUrl/" />
Visual Studioは、SiteUrl機能をマシンにローカルなSharePointインスタンス以外に設定してビルドしないため(これはかなり不十分です)、WSPより前の機能を変更することはできません。
さらに、.bdcmファイル自体にはハードコードされた接続文字列情報があります。
<LobSystemInstance Name="DatabaseName">
<Properties>
<Property Name="AuthenticationMode" Type="System.String">PassThrough</Property>
<Property Name="DatabaseAccessProvider" Type="System.String">SqlServer</Property>
<Property Name="RdbConnection Data Source" Type="System.String">DatabaseServer</Property>
<Property Name="RdbConnection Initial Catalog" Type="System.String">DatabaseName</Property>
<Property Name="RdbConnection Integrated Security" Type="System.String">SSPI</Property>
<Property Name="RdbConnection Pooling" Type="System.String">True</Property>
<Property Name="ShowInSearchUI" Type="System.String" />
</Properties>
</LobSystemInstance>
インストールユーザーがデータベース接続情報を提供したら、これもインストーラーによって書き直す必要があります。
また、MSIを介してサーバーにWSPを実際にインストールするための最善のアプローチが何であるかもわかりません(PowerShellスクリプトを実行しようとすることはこれまで考えてきたすべてです)。
サードパーティ用のBDCモデルを設計することは、シナリオをそれほど曖昧にすべきではないように思えますが、これらの問題を克服する方法に関する情報やサポートを見つけることができません。
誰かアドバイスはありますか?