Appendix B: DslSetup Schema Description

The following tables describe the schema of the InstallerDefinition.dslsetup file, which is a manifest that defines how a domain-specific language is installed. The file is located in the Setup project in a domain-specific language solution.

The <installerDefinition> element is the root of the schema.

<installerDefinition> attributes

defaultDirectoryName

Indicates the name of the directory into which the domain-specific language is installed by default.

productUrl

Indicates the URL that appears in the Add or Remove Programs entry for the product.

productVersion

Indicates the version of the product to be installed.

requiresCSharp

Indicates whether the C# language is a prerequisite for your domain-specific language. If the value of this attribute is true, the installer verifies that C# is installed before it installs your domain-specific language.

requiresVisualBasic

Indicates whether the Visual Basic language is a prerequisite for your domain-specific language.

requiresCPlusPlus

Indicates whether the C++ language is a prerequisite for your domain-specific language.

requiresJSharp

Indicates whether the J# language is a prerequisite for your domain-specific language.

upgradeCode

Indicates the Microsoft Installer (MSI) upgrade code. You generally should not change this value. For more information, see the Windows Installer documentation.

productCode

Indicates the MSI product code. You generally should not change this value. For more information, see the Windows Installer documentation.

customFragmentIds

Indicates the Windows Installer XML (WiX) fragment identifiers through a semicolon-delimited list. You can use this attribute to include custom WiX files in the installer. You must add files that contain WiX fragments to the project and set the "BuildAction" property to "Compile." For more information about how to use fragments, see the WiX schema documentation (https://go.microsoft.com/fwlink/?LinkId=62238).

codePage

Indicates the code page that is used to encode the MSI. This value is an integer, and you must use this attribute if names of deployed files contain non-ASCII characters.

localeId

Indicates the locale setting for the MSI. This value is an integer.

The <dslPackage> element must appear exactly once under the root <installerDefinition> element. The <dslPackage> element describes the main assembly to be installed for your domain-specific language. This assembly will be installed to both the global assembly cache and the target directory.

<dslPackage> attributes

name

Indicates a unique identifier in the generated Windows Installer XML (WiX) file.

project

Indicates the Visual Studio 2008 project in which the package is built. This value can be the name of any C#, Visual Basic, or J# project in the solution.

assemblyPath

Indicates the location of the DslPackage assembly in the authoring solution for your domain-specific language. If the Project attribute is specified, this location should be a relative path to the output directory of the specified project. Otherwise, the location should be relative to the InstallerDefinition.dslsetup file itself.

registryRoot

Specifies the Visual Studio root in the registry where the package should be registered. This value is a string, such as "Software\Microsoft\VisualStudio\9.0".

Each <dslPackage> element contains a <fileExtensions> element, which contains a collection of <fileExtension> elements. Each <fileExtension> element describes an extension to be registered with the Windows shell.

<fileExtension> attributes

name

Indicates a unique identifier in the generated Windows Installer XML (WiX) file.

extension

Indicates the file name extension string, such as ".xyz" where the initial "." is optional.

descriptionKey

Indicates a key in the Strings.wxl (WiX localization file) in the setup project. This key identifies a description string for the file name extension.

hasIcon

Indicates whether the extension is identified with its own icon.

iconId

Indicates the location of the icon that is associated with the file name extension in the package assembly for your domain-specific language. This attribute is a 0-based index into the set of Win32 icon resources that are stored in the assembly.

Each <dslPackage> element can contain a <supportingAssemblies> element, which contains a collection of <supportingAssembly> elements. Each <supportingAssembly> element describes an additional assembly to be installed with the domain-specific language. Each supporting assembly will be installed in both the global assembly cache and the target directory.

<supportingAssembly> attributes

name

Indicates a unique identifier in the generated Windows Installer XML (WiX) file.

project

See <dslPackage>.

assemblyPath

See <dslPackage>.

containsRegistryValues

Indicates that the supporting assembly contains additional registry values in the form of registry attributes that the Visual Studio SDK manages. This attribute is usually false because the package assembly for the domain-specific language carries all the registry information.

The <licenseAgreement> element identifies the license agreement (in plain text or Rich Text Format) to appear during installation and be installed in the installation directory. If this element is not present, the license agreement page is removed from the installer wizard interface.

<licenseAgreement> attributes

name

Unused.

project

See <dslPackage>.

licensePath

Indicates the path of the license agreement file, which should be relative to the location of the InstallerDefinition.dslsetup file or the project output directory if the "project" attribute is used.

Each <dslPackage> element can contain a <mergeModules> element, which contains a collection of <mergeModule> elements. Each <mergeModule> element identifies an external merge module (MSM) to be merged into the final Microsoft Installer (MSI) file.

<mergeModule> attributes

name

Indicates a unique identifier in the generated Windows Installer XML (WiX) file.

modulePath

Indicates the path of the MSM. This path should be relative to the location of the InstallerDefinition.dslsetup file.

localeId

Indicates the local setting for the merge module. This value is an integer.

Each <dslPackage> element can contain a <supportingFiles> element, which contains a collection of <supportingFile> elements. Each <supportingFile> element identifies an additional file to be installed to the target directory. This file might be a Readme document, for example.

<supportingFile> attributes

name

Indicates a unique identifier in the generated Windows Installer XML (WiX) file.

project

See <dslPackage>.

filePath

Indicates the path of the supporting file. The path should be relative to the location of the InstallerDefinition.dslsetup file or the project output directory if the "project" attribute is used.

openAfterInstall

Indicates, by using a Boolean value, whether the file should open after installation has finished. For example, you can use this attribute to open a Readme document that gives users additional information about the domain-specific language that is being installed.

installShortcut

Indicates, by using a Boolean value, whether a shortcut to the file should be installed on the All Programs menu.

embed

Indicates, by using a Boolean value, whether the shortcut should be embedded in the MSI file or exist alongside it. The latter option is useful if users should have access to the file before installation.

shortcutIconPath

Indicates the path of a custom icon file (.ico) for the shortcut if the value of the installShortcut attribute is true. This path should be relative to the location of the InstallerDefinition.dslsetup file or the project output directory if the "project" attribute is used.

Each <dslPackage> element can contain a <textTemplates> element, which can contain a collection of <textTemplate> elements. Each <textTemplate> element specifies a text template file that will be installed into the TextTemplates subdirectory of the target installation directory.

<textTemplate> attributes

name

Unused.

project

See <dslPackage>.

templatePath

Indicates the path of the text template file. The path should be relative to the location of the InstallerDefinition.dslsetup file or the project output directory if the "project" attribute is used.

Each <dslPackage> element can contain a <vsItemTemplates> element, which contains a collection of <vsItemTemplate> elements. Each <vsItemTemplate> element specifies a template file that will be installed into the item template cache for Visual Studio.

<vsItemTemplate> attributes

name

Unused.

project

See <dslPackage>.

localeId

Indicates the locale to which the item template applies (for example, 1033).

targetDirectories

Indicates the directories into which the item template should be installed. This attribute determines where, in the Add New Item dialog box, the template will appear. The value of this attribute is a semicolon-delimited list, and the directories are relative to the item template directory for Visual Studio.

templatePath

Indicates the path of the .zip file that contains the item template. The path should be relative to the location of the InstallerDefinition.dslsetup file or the project output directory if the "project" attribute is used.

Each <dslPackage> element can contain a <vsProjectTemplates> element, which contains a collection of <vsProjectTemplate> elements. Each <vsProjectTemplate> element specifies a project template that will be installed into the project template cache for Visual Studio.

<vsProjectTemplate> attributes

name

Unused.

project

See <dslPackage>.

localeId

Indicates the locale to which the item template applies (for example, 1033).

TargetDirectories

Indicates the directories into which the project template should be installed. This attribute determines where, in the Add New Item dialog box, the template will appear. The value of this attribute is a semicolon-delimited list, and the directories are relative to the project template directory for Visual Studio.

templatePath

Indicates the path of the .zip file that contains the project template. The path should be relative to the location of the InstallerDefinition.dslsetup file or the project output directory if the "project" attribute is used.

Each <dslPackage> element can contain a <dslSchemas> element, which contains a collection of <dslSchema> elements. Each <dslSchema> element represents an XML schema definition (XSD) file that will be installed into the Visual Studio schema cache. This installation enables IntelliSense for files of that schema in the XML editor.

<dslSchema> attributes

name

Unused.

project

See <dslPackage>.

filePath

Indicates the path of the .xsd file. If the path is relative, it will be relative to the Setup project.

See Also

Tasks

Walkthrough: Deploying a Domain-Specific Language

Other Resources

Domain-Specific Language Tools Glossary