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. |