“Web Part Error: Cannot import this Web Part” dans une solution Sandboxed 

Developpement, Sandbox

Pour un projet, j’ai réalisé le développement d’une web part dans une solution Sandboxed. En effet, à terme, cette solution devait être déployable sur SharePoint Online. Le mode Sandboxed était donc un impératif.

 

Bref, jusque là, rien de bien sorcier (hormis le côté fonctionnel de la web part, mais là, c’est un autre sujet).

 

J’ai voulu ensuite ajouter à ma solution un module pour directement déployer une page dans mon site qui contiendrait cette fameuse web part.

 

Ci-dessous le manifeste associé:

 

   1:  <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
   2:    <Module Name="SamplePageModule">
   3:      <File Path="SamplePageModule\SamplePage.aspx" Url="SitePages/SamplePage.aspx"
   4:                           Type="GhostableInLibrary">
   5:        <AllUsersWebPart WebPartZoneID="MainWPZ" WebPartOrder="1">
   6:          <![CDATA[
   7:          <webParts>
   8:            <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
   9:              <metaData>
  10:                <type name="Sample.SandBoxed.SampleWP.SampleWP, $SharePoint.Project.AssemblyFullName$" />
  11:                <importErrorMessage>$Resources:core,ImportErrorMessage;</importErrorMessage>
  12:              </metaData>
  13:              <data>
  14:                <properties>
  15:                  <property name="Title" type="string">SampleWP</property>
  16:                  <property name="Description" type="string">My WebPart</property>
  17:                </properties>
  18:              </data>
  19:            </webPart>
  20:          </webParts>
  21:        ]]>
  22:        </AllUsersWebPart>
  23:      </File>
  24:    </Module>
  25:  </Elements>

 

Après le déploiement de la solution et l’activation de la feature, je navigue jusqu’à cette nouvelle page, et j’obtient l’erreur :

 

image

 

Petite remarque : si j’ajoute la web part directement dans une page existante, cela marche très bien.

 

Après petite étude, il s’avère qu’un paramètre manque dans le manifeste précédent. En effet, il faut indiquer à la web part l’ID de la solution à laquelle elle est attachée. Pour obtenir l’ID de la solution, utilisons notre outil d’administration préféré (nan, ce n’est plus cmd et stsadm), j’ai nommé PowerShell.

 

image

 

Il ne nous reste plus qu’a ajouter la ligne suivante dans notre manifeste (dans le noeud metaData)

 

<Solution SolutionId="76dc1dea-dd58-4a5c-9c83-61e550360bdc" 
       xmlns="http://schemas.microsoft.com/sharepoint/" />

 

Un nouveau déploiement, et tout devrait rentrer dans l’ordre …

 

image

 

- Julien

 
Posté le 11 Jun 10
Commentaire (0)  |  Url de Trackback  | Lien vers ce message (0) | Marquez ce billet avec:        
 

Liens vers ce message

Commentaires


Nom *:
URL:
Email:
Commentaires:

© 2011 Julien Chomarat - Design based on Blue World