Solution component file reference (SolutionPackager)

 

Applies To: Dynamics CRM 2013

This topic describes the folder structure and file naming scheme used by the SolutionPackager tool. The tool is used to decompose (unpack) Microsoft Dynamics CRM solution files into XML files that can be managed by a source code control system. The tool can also compile (pack) these individual XML files into a solution file that can be imported into Microsoft Dynamics CRM. For more information about the SolutionPackager tool, see Solution tools for team development.

The following tables describe the files that will be created for each solution component type, and which of these files are less suited to inclusion in source control. The folders indicated in the tables are all relative to the folder specified in the /folder parameter of the SolutionPackager command.

In This Topic

Component: Entity

Component: Option set

Component: Entity relationship

Component: Ribbon customization

Component: Site map

Component: Web resources

Component: Role

Component: Connection role

Component: Dashboard

Component: Workflow

Component: Email template

Component: Contract template

Component: Kb article template

Component: Mail merge template

Component: PluginAssembly

Component: SdkMessageProcessingStep

Component: ServiceEndpoint

Component: Reports

Component: EntityMap

Component: Entity

Differs in managed solutions: Yes

Notes:

  1. Each entity has a distinct folder.

  2. Each Form, View & Visualization gets their own file in the respective sub-folder.

  3. The Form file names will vary by Managed or Unmanaged Solution types.

  4. Direct editing of RibbonDiff.xml to customize entity specific ribbons is supported.

  5. Manual editing of the XML files under the FormXml and SavedQueries folders is supported but optional.

Files:

\Entities\<Entity Schema Name>\

Entity.xml
RibbonDiff.xml

FormXml\Main\

{guid 1}.xml
{guid 1_managed}.xml
{guid n}.xml
{guid n_managed}.xml

FormXml\Mobile\

{guid 1}.xml
{guid 1_managed}.xml
{guid n}.xml
{guid n_managed}.xml

SavedQueries\

{guid 1}.xml
{guid n}.xml

Visualizations\

{guid 1}.xml
{guid n}.xml

Component: Option set

Differs in managed solutions: No

Notes:

  1. Each option set is stored in a distinct file.

Files:

\OptionSets\

<schema name 1>.xml
<schema name n>.xml

Component: Entity relationship

Differs in managed solutions: Yes

Notes:

  1. Each entity has a distinct file that contains all relationships where for:

    1. N:N it is the first listed entity

    2. 1:N it is the referenced entity

Files:

\Other\Relationships\

<Entity schema name 1>.xml
<Entity schema name n>.xml

Component: Ribbon customization

Differs in managed solutions: No

Notes:

  1. All entity specific ribbon XML can be found in the respective folder for that entity. All other ribbon XML will be in this file.

  2. Direct editing of RibbonCustomizations.xml to customize the global ribbon is supported.

Files:

\Other\RibbonCustomizations.xml

Component: Site map

Differs in managed solutions: Yes

Notes:

  1. Sitemap XML format is different for unmanaged & managed solutions. Expect the file to be named as shown here. When extracting both package types, both files are present.

Files:

\Other\

SiteMap.xml
SiteMap_managed.xml

Component: Web resources

Differs in managed solutions: No

Notes:

  1. The raw web resource is stored as a distinct file. The forward slash (/) characters are used to create folders.

  2. The web resource metadata is stored with a similar file name ending in .data.xml.

  3. It is recommended that the name of a web resource contain the natural file name extension.

  4. Adding the raw files to source control may cause duplication.

Files:

\WebResources\

<name 1>
<name 1>.data.xml
<name n>
<name n>.data.xml

Component: Role

Differs in managed solutions: No

Notes:

  1. Each role is stored in a distinct file.

Files:

\Roles\

<schema name>.xml

Component: Connection role

Differs in managed solutions: No

Notes:

  1. All Connection Roles are stored jointly in one file.

Files:

\Other\ConnectionRoles.xml

Component: Dashboard

Differs in managed solutions: No

Notes:

  1. Each dashboard is stored in a distinct file.

Files:

\Dashboards\

{guid 1}.xml
{guid n}.xml

Component: Workflow

Differs in managed solutions: No

Notes:

  1. The XAML for each workflow is stored in a distinct file.

  2. Metadata for each workflow resides in a similarly named file ending in .data.xml.

Files:

\Workflows\

<XamlFileName 1>.xaml
<XamlFileName 1>.xaml.data.xml
<XamlFileName n>.xaml
<XamlFileName n>.xaml.data.xml

Component: Email template

Differs in managed solutions: No

Notes:

  1. All email template metadata is stored in a single file.

  2. Each email template uses four distinct files per language.

Files:

\Templates\

EmailTemplates.xml

EmailDocuments\

<LCID 1>\{guid 1}\

Body.xsl
Presentation.xml
Subject.xsl
Subjectpresentation.xml

<LCID 1>\{guid n}\

Body.xsl
Presentation.xml
Subject.xsl
Subjectpresentation.xml

<LCID n>\{guid 1}\

Body.xsl
Presentation.xml
Subject.xsl
Subjectpresentation.xml

<LCID n>\{guid n}\

Body.xsl
Presentation.xml
Subject.xsl
Subjectpresentation.xml

Component: Contract template

Differs in managed solutions: No

Notes:

  1. All Contract template metadata is stored in a single file.

Files:

\Templates\ContractTemplates.xml

Component: Kb article template

Differs in managed solutions: No

Notes:

  1. All contract template metadata is stored in a single file.

  2. Each contract template uses two distinct files per language.

Files:

\Templates\

KBArticleTemplates.xml

KBArticleTemplates\

<LCID 1>\{guid 1}\

formatxml.xsl
Structurexml.xml

<LCID 1>\{guid n}\

formatxml.xsl
Structurexml.xml

<LCID n>\{guid 1}\

formatxml.xsl
Structurexml.xml

<LCID n>\{guid n}\

formatxml.xsl
Structurexml.xml

Component: Mail merge template

Differs in managed solutions: No

Notes:

  1. All mail merge template metadata is stored in a single file.

  2. Each mail merge template uses two distinct files per language.

  3. Documents that are shared across multiple templates will be stored in a single distinct file.

Files:

\Templates\

MailMergeTemplates.xml

MailMergeDocuments\

<LCID 1>\{guid 1}\<document name 1>.xml
<LCID 1>\{guid n}\<document name n>.xml
<LCID n>\{guid 1}\<document name 1>.xml
<LCID n>\{guid n}\<document name n>.xml

Component: PluginAssembly

Differs in managed solutions: No

Notes:

  1. Each plug-in assembly will have a distinct file for the raw assembly bytes.

  2. Plug-in assembly metadata is stored in a similar named file ending in .data.xml.

  3. Including the raw assembly in source control is not recommended.

Files:

\PluginAssemblies\

<Assembly Name 1>-{guid 1}\

<Assembly Name 1>.dll
<Assembly Name 1>.dll.data.xml

<Assembly Name n>-{guid n}\

<Assembly Name n>.dll
<Assembly Name n>.dll.data.xml

Component: SdkMessageProcessingStep

Differs in managed solutions: No

Notes:

  1. Each SDK message processing step is stored in a distinct file.

Files:

\SdkMessageProcessingSteps\

{guid 1}.xml
{guid n}.xml

Component: ServiceEndpoint

Differs in managed solutions: No

Notes:

  1. All service end point metadata is jointly stored in one file.

Files:

\PluginAssemblies\ServiceEndpoints.xml

Component: Reports

Differs in managed solutions: No

Notes:

  1. Reports are stored in a distinct sub-folder per language.

  2. Each report has a distinct file within that folder.

  3. Metadata for each report is stored within a similar named file ending in .data.xml.

Files:

\Reports\

ReportSignatureIdMappings.xml

ReportLinks.xml

<LCID 1>\{guid 1}\

<Report Name 1>.rdl
<Report Name 1>.rdl.data.xml

<LCID 1>\{guid n}\

<Report Name n>.rdl
<Report Name n>.rdl.data.xml

<LCID n>\{guid 1}\

<Report Name 1>.rdl
<Report Name 1>.rdl.data.xml

<LCID n>\{guid n}\

<Report Name n>.rdl
<Report Name n>.rdl.data.xml

Component: EntityMap

Differs in managed solutions: No

Notes:

  1. All entity maps are stored in a single file.

Files:

\Other\EntityMaps.xml

See Also

Solution tools for team development
Use the SolutionPackager tool to compress and extract a solution file
Programming reference