背景(或在所有!):我们有一个ClickOnce部署WPF应用程序,该会谈WCF服务,这反过来既要讲我们自己的SQL数据库,并以通过客户端OM进行SharePoint。要建立WCF和ClickOnce的,我们有一个安装项目,这都将在大约从安装用户服务器的路径和数据库连接字符串的详细信息,并触发一个Installer类做有趣的事情就像写XML配置和更新的ClickOnce捆扎机为部署网址等。如何使用VS安装项目部署SharePoint BDC模型包
我们需要添加一些BDC模型通过该安装程序到SharePoint,以便最终用户可以使用SharePoint列表的接口配置一些很少改变的表值在我们的数据库。 (作为“一键式”安装过程尽可能是客户强加的一项要求。)
在我们的Visual Studio 2010解决方案中包括一个BDC Model项目,我们可以为我们的BDC的东西获得打包的WSP,听起来很不错...
的一个问题这一点,然而,就是在被包装成这个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模型不应该是一个场景的晦涩难懂,但我找不到任何信息或支持如何克服这些问题!
任何人有什么建议吗?
考虑到你的团队的方法,而不是使用WSP包,你只需要.bdcm文件松动呢?然后,您可以通过运行PowerShell脚本来导入它们,我猜? – Grank 2011-06-01 16:42:46
我最近发现可以在中央管理员中配置此功能。您也可以为包含此信息的模型维护一个单独的资源文件。在中央管理员中,转到BCS服务应用程序。在右上角的下拉列表中选择“外部系统”。点击你的外部系统。然后点击外部系统实例。 – 2011-06-01 18:11:28
我最终创建了一个参数化的PowerShell脚本来导入一个全包的.bdcm文件。这样做的好处是可以做一些有趣的事情,如:将连接字符串写入模型,确保BDC服务运行,必要时创建BDC服务应用程序,确保Secure Store Service运行,根据需要创建Secure Store Service App,创建Secure Store服务应用程序代理(如有必要),必要时创建安全存储服务目标应用程序,更新密钥,设置元数据存储的权限,为模型中的所有实体创建外部列表...... :) – Grank 2012-02-15 18:22:10