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 :
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.
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 …
- Julien