-
Notifications
You must be signed in to change notification settings - Fork 76
API Manifest
Manifest is an xml document which holds metadata and installation strategy for each Sitecore module and custom package.
The manifest should be stored in the following places to be picked up:
.\Manifests\\*
.\Plugins\\*
%APPDATA%\Sitecore\Sitecore Instance Manager\Manifests\\*
%APPDATA%\Sitecore\Sitecore Instance Manager\Plugins\\*
Side-by-side with the distributive file
Note, here .\
means folder where SIM is installed to, and \\*
means this folder and any descendant folders.
The mapping between distributive and manifest is done via proper file naming.
Example: My Module 1.2.3 rev. 123456.zip will pick up and merge all following manifests if they exist:
- My Module.manifest.xml
- My Module 1.manifest.xml
- My Module 1.2.manifest.xml
- My Module 1.2.3.manifest.xml
- My Module 1.2.3 rev. 123456.manifest.xml
- My Files.manifest.xml
As long as SIM computes manifest (merges all manifest files for specific distributive into single manifest) the result is stored in the cache file %APPDATA%\Sitecore\Sitecore Instance Manager\Caches\manifest.txt
which is useful to look in for troubleshooting. This means that any time you modify a manifest, you should either:
- delete appropriate row in the file
- delete the entire file
- click SIM → Ribbon → Refresh → Everything
There are 3 types of things you can install with SIM:
- Sitecore Standalone Product
- Sitecore Package
- Archive
For standalone product the manifest can contain only metadata, installation instructions cannot be applied.
<manifest version="1.3">
<standalone>
<!-- METADATA -->
</standalone>
</manifest>
<manifest version="1.3">
<standalone>
<limitations>
<framework>
<supportedVersion attr="1">v4.0</supportedVersion>
<supportedVersion attr="2">v4.0 32bit</supportedVersion>
</framework>
</limitations>
</standalone>
</manifest>
<manifest version="1.3">
<standalone>
<label>Initial Release</label>
</standalone>
</manifest>
<manifest version="1.3">
<standalone>
<name>Sitecore Jetstream</name>
<shortName>jet</shortName>
<limitations>
<framework>
<supportedVersion attr="2">v4.0 32bit</supportedVersion>
</framework>
</limitations>
</standalone>
</manifest>
<manifest version="1.3">
<standalone>
<notSupported />
</standalone>
</manifest>
Sitecore Modules and Custom Packages are in fact Sitecore Packages which has same manifest rules. You can define metadata in manifest alongside with the pre- and post-installation actions.
<manifest version="1.3">
<package>
<!-- METADATA -->
<install>
<postStepActions skipStandard="true|false">
<add type="NS.Class, DLL-IN-PACKAGE" method="Method" />
...
</postStepActions>
<before>
<!-- ACTIONS -->
</before>
<after>
<!-- ACTIONS -->
</after>
</install>
</package>
</manifest>
<manifest version="1.3">
<package>
<sortOrder>90</sortOrder>
<name>Sitecore Web Forms for Marketers</name>
<install>
<postStepActions skipStandard="true">
<add type="Sitecore.Form.Core.Configuration.Installation, Sitecore.Forms.Core" method="ChooseSQLiteVersionDll" />
</postStepActions>
<after>
<params>
<param name="{Restricting Placeholders}" title="Please choose Restricting Placeholders" defaultValue="content" mode="multiselect" getOptionsType="SIM.Pipelines.ConfigurationActions, SIM.Pipelines" getOptionsMethod="GetPlaceholderNames" />
</params>
<actions>
<publish mode="incremental" />
<setRestrictingPlaceholders names="{Restricting Placeholders}" />
<config path="App_Config\Include\Sitecore.Forms.config">
<delete xpath="/configuration/sitecore/formsDataProvider[@type='Sitecore.Forms.Data.DataProviders.WFMDataProvider,Sitecore.Forms.Core']/param" />
</config>
<databases>
<database name="wfm" fileName="Sitecore_WebForms.mdf" location="package.zip\files\Data" />
</databases>
</actions>
</after>
</install>
</package>
</manifest>
Archive is a little bit more simple comparing to Sitecore Packages. Manifest can contain metadata and post-install actions only.
<manifest version="1.3">
<archive>
<!-- METADATA -->
<install>
<!-- ACTIONS -->
</install>
</archive>
</manifest>
<manifest version="1.3">
<archive>
<install>
<actions>
<editfile path="/Website/bin_Net4/Sitecore.Mvc.Analytics.dll">
<move target="/Website/bin/Sitecore.Mvc.Analytics.dll" />
</editfile>
<editfile path="/Website/App_Config/Include/Sitecore.MvcAnalytics.config.disabled">
<move target="/Website/App_Config/Include/Sitecore.MvcAnalytics.config" />
</editfile>
</actions>
</install>
</archive>
</manifest>
<manifest version="1.3">
<archive>
<install>
<params>
<param name="{Remote SQL Connection String}" title="Remote SQL Server Connection String" defaultValue="data source=SERVERNAME;user id=sa;password=12345;" />
<param name="{CM Instance Name}" title="CM Instance Name" defaultValue="" />
</params>
<actions>
<config path="App_Config\ConnectionStrings.config">
<delete xpath="/connectionStrings/add" />
<delete xpath="/connectionStrings/add" />
<delete xpath="/connectionStrings/add" />
<append xpath="/connectionStrings">
<add name="core" connectionString="{Remote SQL Connection String};Database={CM Instance Name}Sitecore_core" />
<add name="master" connectionString="{Remote SQL Connection String};Database={CM Instance Name}Sitecore_master" />
<add name="web" connectionString="{Remote SQL Connection String};Database={CM Instance Name}Sitecore_web" />
</append>
</config>
</actions>
</install>
</archive>
</manifest>
<manifest version="1.3">
<archive>
<install>
<actions>
<editfile path="/Website/Website.csproj">
<replacevariables />
</editfile>
<editfile path="/Website/Website.sln">
<move target="/Website/{InstanceName}.sln"/>
</editfile>
</actions>
</install>
<finish>
<action text="Open the solution in Visual Studio" type="SIM.Tool.Windows.Pipelines.FinishActions, SIM.Tool.Windows" method="OpenSolution" />
</finish>
</archive>
</manifest>