Справочная информация. У нас есть приложение WPF, развернутое ClickOnce, которое взаимодействует со службами WCF, которые, в свою очередь, взаимодействуют как с нашей собственной базой данных SQL, так и с SharePoint через Client OM. Чтобы настроить WCF и ClickOnce, у нас есть проект Setup, в котором подробно рассматриваются пути к серверу и строки подключения к базе данных от пользователя, устанавливающего программу, и запускается класс Installer для таких забавных вещей, как написание config XML и обновление стриппера ClickOnce для этого. URL развертывания и т. д.
Нам нужно добавить некоторые модели BDC в SharePoint с помощью этого установщика, чтобы конечные пользователи могли использовать интерфейсы списков SharePoint для настройки некоторых редко изменяемых табличных значений в нашей базе данных. (Поскольку процесс установки выполняется одним щелчком, это требование клиента.)
Включая проект BDC Model в наше решение Visual Studio 2010, мы можем получить упакованный WSP для нашего BDC, который звучит великолепно ...
Однако одна из проблем заключается в том, что в файле feature.xml, который упакован в этот WSP, появляется эта жестко запрограммированная строка:
<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>
Это также должно быть переписано установщиком, как только установочный пользователь предоставит информацию о соединении с базой данных.
Я также не уверен, какой будет наилучший подход для фактической установки WSP на сервер через MSI (попытка выполнить скрипт powershell - это все, о чем я до сих пор думал).
Мне кажется, что проектирование моделей BDC для третьей стороны не должно быть таким неясным для сценария, но я не могу найти никакой информации или поддержки о том, как преодолеть любую из этих проблем!
У кого-нибудь есть совет?