Как развернуть пакет модели SharePoint BDC с помощью проекта установки VS (или вообще!) - PullRequest
3 голосов
/ 23 марта 2011

Справочная информация. У нас есть приложение 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 для третьей стороны не должно быть таким неясным для сценария, но я не могу найти никакой информации или поддержки о том, как преодолеть любую из этих проблем!

У кого-нибудь есть совет?

Ответы [ 5 ]

1 голос
/ 01 декабря 2011

Advanced Installer предлагает некоторую поддержку для этого.По сути, через его XML-редактор вы можете использовать свойства установщика Windows вместо жестко заданных значений в файлах манифеста.

Другое решение, которое я могу придумать, - это использовать customДействие для изменения файлов после установки.

В любом случае для этого требуется сложный установщик, например, пакет MSI.ClickOnce не поддерживает это.

1 голос
/ 30 ноября 2011

Два метода, которые вы можете использовать:

  1. Если вы используете «пользовательский» тип сборки (вместо DotNetAssembly в качестве типа LobSystem), вы можете реализовать IAdministrable, чтобы позволить вам изменять свойства (либо LobSystem, либо LobSystemInstance) в Central Admin. Кажется, он не работает для DotNetAssemblies, даже если реализован IAdministrable.

  2. Кроме того, вы можете изменить свойства, импортировав файлы ресурсов. Самый простой способ сделать это - импортировать вашу модель, затем экспортировать ее как файл ресурсов и отредактировать файл до свойств, которые вы изменили. Затем импортируйте файл bdcr (ресурс), и вы увидите, что свойства были изменены.

1 голос
/ 24 марта 2011

Я тоже столкнулся с этой проблемой. Я хотел бы упаковать нашу модель BDC в WSP и развернуть ее через WSP. К сожалению (как вы указали) модель BDC содержит определенную информацию о среде, которую необходимо настроить для каждой среды.

То, что мы получили, - это сохранение различных моделей BDC и их просто импорт, а не упаковка в WSP. Судя по звукам, вам может понадобиться запросить информацию о конкретной среде во время установки и каким-то образом использовать ее.

0 голосов
/ 11 февраля 2015

В нашем случае мы внедрили пользовательский Feature Receiver, используя инструкции, расположенные по адресу SharePoint 2010, и развертывание модели BCS с использованием пакета свойств фермы для динамического siteurl . Это позволяет развертывать в любой среде, поскольку сайтURL обнаружен во время активации функции.

0 голосов
/ 26 июля 2011

Если вы хотите развернуть свой BDC на определенном siteURL при его развертывании, перейдите в папку проекта для своей модели bcd при просмотре своего решения и в свойствах папки вы должны увидеть что-то под названием «Свойства компонента».

Нажмите на elipsis, чтобы развернуть свойства, добавьте заголовок с именем «SiteUrl» и задайте его как корень сайта, на котором вы хотите его развернуть: т.е. «http://spsite".

Это будетразвернут на этом сайте вместо локального.

...