2009-09-15 10 views
0

Est-il possible d'avoir deux composants WebPart avec la même DLL, mais deux fichiers .webpart, déployés dans Sharepoint au en même temps?Puis-je déployer dans SharePoint deux composants WebPart avec la même DLL, mais deux fichiers .webpart en même temps?

Contexte: Je développe une application qui génère un fichier ".cab" contenant une (partie Web ASP.NET 2.0) Partie Web. Après cela, l'utilisateur devrait pouvoir déployer ce fichier ".cab" dans un serveur SharePoint.

Mon application inclut déjà la DLL d'un composant WebPart. Le "comportement" de ce WebPart dépend des propriétés du fichier ".webpart" qui sera généré lors de l'exécution par mon application (son contenu changera en fonction de certains choix de l'utilisateur) Après avoir généré le fichier ".webpart", il l'empaquette dans un fichier ".cab" le long d'un fichier Manifest.xml et de la DLL. Imaginez que l'utilisateur crée deux fichiers "cab" en utilisant mon application. Et il veut les déployer dans SharePoint.

Pour tester cela, je crée ces deux fichiers « .cab » avec mon application, et dans SharePoint J'Execute:

$> STSADM.EXE -o addwppack <cab filename #1> 
$> STSADM.EXE -o addwppack <cab filename #2> 
$> STSADM.EXE -o deletewppack <cab filename #1> 

Après l'exécution de la troisième commande, la partie Web # 2 ne avoir la DLL. Lorsque j'ai installé le composant WebPart n ° 2, SharePoint remplace le fichier DLL du composant WebPart n ° 1 Le problème ici est que la DLL des deux fichiers est copiée au même emplacement. Cet emplacement est le nom de l'assembly de DLL. Ce nom d'assembly ne peut pas être changé sans recompilation (je pense).

Est-il possible de déployer indépendamment deux fichiers cab, même s'ils partagent la même DLL?

Répondre

0

Vous pourriez diviser votre application en 2 parties: une 'bibliothèque' qui contient seulement votre DLL. Et quelque chose qui déploie le fichier .webpart seulement. Les utilisateurs doivent toujours garder la partie 'library' installée ..

Aussi, vous voudrez peut-être regarder des alternatives d'installer un 'wpppack' .. le fichier .webpart n'est rien de plus qu'un fichier dans une bibliothèque de vos sites .. peut être plus facile à ajouter que d'installer un .cab sur le serveur.

0

Cela ne devrait pas être un problème du tout. Un fichier .webpart pointe simplement vers une classe dans un assembly et fournit les valeurs de configuration pour une instance spécifique de cette classe. Si vous souhaitez que plusieurs configurations de votre webpart soient disponibles dans la galerie webpart, vous pouvez le faire en téléchargeant plusieurs fichiers .webpart qui font référence à la même classe. Par exemple, chaque instance du composant WebPart listview peut être exportée vers un fichier .webpart, mais tous utilisent la même classe WebPart. Vérifiez this blog posting pour plus d'informations sur le contenu du fichier .webpart.

Questions connexes