Comment déployer le package de modèle BDC SharePoint à l'aide du projet de configuration vs (ou pas du tout!)

StackOverflow https://stackoverflow.com/questions/5408580

Question

CONTEXTE: Nous avons une application WPF déposée par clicce, qui parle aux services WCF, qui à leur tour parlent à la fois vers notre propre base de données SQL et également à SharePoint via le client OM. Pour configurer le WCF et le ClickOnce, nous avons un projet de configuration, qui prend des détails sur les chemins de serveur et les chaînes de connexion de la base de données de l'installation de l'utilisateur et tire une classe d'installation pour faire des trucs amusants comme écrire Config XML et mettre à jour le Strapper ClickOnce pour cela pour cela URL de déploiement et autres.

Nous devons ajouter des modèles BDC à SharePoint via ce programme d'installation, afin que les utilisateurs finaux puissent utiliser les interfaces de liste SharePoint pour configurer certaines des valeurs de table rarement modifiées dans notre base de données. (En tant que "clic", un processus d'installation possible est une exigence imposée par le client.)

Y compris un projet de modèle BDC dans notre solution Visual Studio 2010, nous pouvons obtenir un WSP emballé pour nos trucs BDC, ce qui sonne bien ...
Un problème avec cela, cependant, est que dans la fonctionnalité.xml qui est emballé dans ce WSP, cette ligne codée dure apparaît:

<Property Key="SiteUrl" 
    Value="http://BuildingWorkstationSharePointInstanceUrl/" />

Visual Studio ne sera pas construit avec la fonctionnalité SITEURL SET sur autre chose qu'une instance SharePoint locale à la machine (ce qui est assez boiteux), nous ne pouvons donc pas changer ce pré-WSP.

De plus, les fichiers .bdcm eux-mêmes ont des informations de chaîne de connexion à code dur:

<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>

Cela devrait également être réécrit par l'installateur une fois que l'utilisateur d'installation aura fourni les informations de connexion de la base de données.

Je ne sais pas non plus quelle sera la meilleure approche pour installer réellement le WSP sur le serveur via le MSI (essayer d'exécuter un script PowerShell est tout ce à quoi je pensais jusqu'à présent).

Il me semble que la conception de modèles BDC pour un tiers ne devrait pas être si obscure d'un scénario, mais je ne trouve aucune information ou support sur la façon de surmonter aucun de ces problèmes!

Quelqu'un a des conseils?

Était-ce utile?

La solution

J'ai également rencontré ce problème. Je voudrais emballer notre modèle BDC dans un WSP et le déployer via le WSP. Malheureusement (comme vous l'avez indiqué), le modèle BDC contient des informations d'environnement spécifiques qui doivent être configurées par environnement.

Ce que nous avons atterri, c'est de garder les différents modèles BDC et de les importer au lieu de les emballer dans un WSP. D'après les sons de celui-ci, vous devrez peut-être demander des informations sur l'environnement spécifiques au moment de l'installation et l'utiliser en quelque sorte.

Autres conseils

Deux méthodes que vous pourriez utiliser:

  1. Si vous utilisez un type d'assemblage "personnalisé" (au lieu d'un dotnetassembly comme type de homard), vous pouvez implémenter iadministable pour vous permettre de modifier les propriétés (soit le homard ou le lobystemstance) dans l'administrateur central. Cela ne semble pas fonctionner pour les dotnetassemblies, même si iadministable est implémenté.

  2. Alternativement, vous pouvez modifier les propriétés en important des fichiers de ressources. Le moyen le plus simple de le faire est d'importer votre modèle, puis de l'exporter en tant que fichier de ressources et de modifier le fichier vers les propriétés dont vous avez besoin. Importez ensuite le fichier BDCR (ressource) et vous verrez une indication que les propriétés avaient été modifiées.

Installateur avancé offre un certain soutien à cela. Fondamentalement, grâce à son éditeur XML, vous pouvez utiliser Propriétés de l'installateur Windows Au lieu de valeurs codées durs dans vos fichiers manifestes.

L'autre solution à laquelle je peux penser est d'utiliser un action personnalisée Pour modifier les fichiers après l'installation.

Quoi qu'il en soit, cela nécessite un installateur complexe, comme un package MSI. ClickOnce ne le prend pas en charge.

Si vous souhaitez déployer votre BDC sur un SITEURL spécifique lorsque vous le déployez, accédez à votre dossier de projet pour votre modèle BCD lorsque vous visualisez votre solution et dans les propriétés du dossier, vous devriez voir quelque chose appelé "Propriétés de fonctionnalité".

Cliquez sur l'Elipsis pour étendre les propriétés et ajoutez un titre appelé "SITEURL" et définissez-le pour être la racine du site que vous souhaitez également le déployer: c'est-à-dire "http: // spsite".

Il sera déployé sur ce site au lieu de celui local.

Dans notre cas, nous avons implémenté un récepteur de fonctionnalités personnalisé en utilisant des instructions situées à SharePoint 2010, déploiement d'un modèle BCS à l'aide d'un sac de propriété agricole pour avoir un SITEURL dynamiqueIl permet de se déployer dans n'importe quel environnement car l'URL du site est découverte lors de l'activation des fonctionnalités.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top