| <?xml version="1.0" encoding="utf-8"?> |
| <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" |
| xmlns:xse="http://schemas.microsoft.com/wix/2005/XmlSchemaExtension" |
| xmlns:html="http://www.w3.org/1999/xhtml" |
| targetNamespace="http://schemas.microsoft.com/wix/NetFxExtension" |
| xmlns="http://schemas.microsoft.com/wix/NetFxExtension"> |
| <xs:annotation> |
| <xs:documentation> |
| Copyright (c) Microsoft Corporation. All rights reserved. |
| |
| The use and distribution terms for this software are covered by the |
| Common Public License 1.0 (http://opensource.org/licenses/cpl1.0.php) |
| which can be found in the file CPL.TXT at the root of this distribution. |
| By using this software in any fashion, you are agreeing to be bound by |
| the terms of this license. |
| |
| You must not remove this notice, or any other, from this software. |
| |
| The source code schema for the Windows Installer XML Toolset .NET Framework Extension. |
| </xs:documentation> |
| </xs:annotation> |
| |
| <xs:element name="NativeImage"> |
| <xs:annotation> |
| <xs:documentation> |
| Improves the performance of managed applications by creating native images. |
| Requires the .NET Framework 2.0 or newer to be installed on the target machine since |
| it runs <html:a href="http://msdn2.microsoft.com/en-us/library/6t9t5wcf.aspx">NGen</html:a>. |
| </xs:documentation> |
| <xs:appinfo> |
| <xse:parent namespace="http://schemas.microsoft.com/wix/2006/wi" ref="File" /> |
| <xse:remarks> |
| Native images are files containing compiled processor-specific machine code, which |
| are installed into the native image cache on the local computer. The runtime |
| can use native images from the cache instead using the just-in-time (JIT) |
| compiler to compile the original assembly. |
| The native image custom actions are configured to ignore failures so that failing |
| to generate or remove a native image will not cause setup to fail and roll back. |
| </xse:remarks> |
| </xs:appinfo> |
| </xs:annotation> |
| <xs:complexType> |
| <xs:attribute name="Id" type="xs:string" use="required"> |
| <xs:annotation> |
| <xs:documentation> |
| The identifier for this NativeImage. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="AppBaseDirectory" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| The identifier of the directory to use for locating dependent assemblies. |
| For DLL assemblies and assemblies installed to the Global Assembly Cache (GAC), |
| this attribute should be set to the directory of the application which loads this |
| assembly. For EXE assemblies, this attribute does not need to be set because NGen |
| will use the directory of the assembly file by default. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="AssemblyApplication" type="xs:string"> |
| <xs:annotation> |
| <xs:documentation> |
| The identifier of the application which will load this assembly. |
| For DLL assemblies which are loaded via reflection, this attribute should |
| be set to indicate the application which will load this assembly. |
| The configuration of the application (usually specified via an exe.config file) will be used |
| to determine how to resolve dependencies for this assembly. |
| When a shared component is loaded at run time, using the Load method, the |
| application's configuration file determines the dependencies that are loaded |
| for the shared component — for example, the version of a dependency that is loaded. |
| This attribute gives guidance on which dependencies would be loaded at run time in order |
| to figure out which dependency assemblies will also need to have native images generated |
| (assuming the Dependency attribute is not set to "no"). |
| This attribute cannot be set if the AssemblyApplication attribute is set on the parent |
| File element (please note that these attributes both refer to the same application |
| assembly but do very different things: specifiying File/@AssemblyApplication will force |
| an assembly to install to a private location next to the indicated application, whereas |
| this AssemblyApplication attribute will be used to help resolve dependent assemblies |
| while generating native images for this assembly). |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="Debug" type="YesNoType"> |
| <xs:annotation> |
| <xs:documentation> |
| Set to "yes" to generate native images that can be used under a debugger. |
| The default value is "no". |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="Dependencies" type="YesNoType"> |
| <xs:annotation> |
| <xs:documentation> |
| Set to "no" to generate the minimum number of native images. |
| The default value is "yes". |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| <xs:attribute name="Platform"> |
| <xs:annotation> |
| <xs:documentation> |
| Sets the platform(s) for which native images will be generated. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:NMTOKEN"> |
| <xs:enumeration value="32bit"> |
| <xs:annotation> |
| <xs:documentation> |
| Attempt to generate native images only for the 32-bit version of the .NET Framework |
| on the target machine. If the 32-bit version of the .NET Framework 2.0 or newer is not |
| present on the target machine, native image custom actions will not be scheduled. |
| This is the default value. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="64bit"> |
| <xs:annotation> |
| <xs:documentation> |
| Attempt to generate native images only for the 64-bit version of the .NET Framework |
| on the target machine. If a 64-bit version of the .NET Framework 2.0 or newer is not |
| present on the target machine, native image custom actions will not be scheduled. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="all"> |
| <xs:annotation> |
| <xs:documentation> |
| Attempt to generate native images for the 32-bit and 64-bit versions of the .NET Framework |
| on the target machine. If a version of the .NET Framework 2.0 or newer is not present on the |
| target machine for a processor architecture, native image custom actions will not be |
| scheduled for that processor architecture. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="Priority"> |
| <xs:annotation> |
| <xs:documentation> |
| Sets the priority of generating the native images for this assembly. |
| </xs:documentation> |
| </xs:annotation> |
| <xs:simpleType> |
| <xs:restriction base="xs:NMTOKEN"> |
| <xs:enumeration value="0"> |
| <xs:annotation> |
| <xs:documentation> |
| This is the highest priority, it means that image generation occurs syncronously |
| during the setup process. This option will slow down setup performance. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="1"> |
| <xs:annotation> |
| <xs:documentation> |
| This will queue image generation to the NGen service to occur immediately. |
| This option will slow down setup performance. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="2"> |
| <xs:annotation> |
| <xs:documentation> |
| This will queue image generation to the NGen service to occur after all priority 1 |
| assemblies have completed. |
| This option will slow down setup performance. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| <xs:enumeration value="3"> |
| <xs:annotation> |
| <xs:documentation> |
| This is the lowest priority, it will queue image generation to occur when the |
| machine is idle. |
| This option should not slow down setup performance. |
| This is the default value. |
| </xs:documentation> |
| </xs:annotation> |
| </xs:enumeration> |
| </xs:restriction> |
| </xs:simpleType> |
| </xs:attribute> |
| <xs:attribute name="Profile" type="YesNoType"> |
| <xs:annotation> |
| <xs:documentation> |
| Set to "yes" to generate native images that can be used under a profiler. |
| The default value is "no". |
| </xs:documentation> |
| </xs:annotation> |
| </xs:attribute> |
| </xs:complexType> |
| </xs:element> |
| |
| <xs:simpleType name="YesNoType"> |
| <xs:annotation> |
| <xs:documentation>Values of this type will either be "yes" or "no".</xs:documentation> |
| </xs:annotation> |
| <xs:restriction base='xs:NMTOKEN'> |
| <xs:enumeration value="no"/> |
| <xs:enumeration value="yes"/> |
| </xs:restriction> |
| </xs:simpleType> |
| |
| </xs:schema> |