236 lines
14 KiB
XML
236 lines
14 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
|
|
|
|
|
|
<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>
|
|
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://msdn.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>
|
|
<html:p>
|
|
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.
|
|
</html:p>
|
|
<html:p>
|
|
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.
|
|
</html:p>
|
|
<html:p>
|
|
<html:b>Note for patches:</html:b> if you built your target, or baseline, MSI with
|
|
previous versions 3.0 or 3.5 of this extension and want to upgrade to formattable
|
|
values for @AssemblyApplication or @AppBaseDirectory you must also include a
|
|
BinaryRef to "NetFxCA" to pull in necessary changes. If you do use formattable
|
|
values and do not include the binary changes ngen.exe will not optimize your
|
|
native images for the specified application.
|
|
</html:p>
|
|
<html:p>
|
|
This should be a rare occurrence, however. Because you cannot remove components
|
|
in a patch - and pyro does validate you do not - it is not practical to switch
|
|
from using identifiers to formattable values in a patch. One practical possibility
|
|
is if you wanted to use a different application to optimize your native images
|
|
and that application is not already installed with the MSI to be updated.
|
|
</html:p>
|
|
</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>
|
|
<html:p>
|
|
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.
|
|
</html:p>
|
|
<html:p>
|
|
The value can be in the form of a directory identifier, or a formatted string
|
|
that resolves to either a directory identifier or a full path to a directory.
|
|
</html:p>
|
|
</xs:documentation>
|
|
</xs:annotation>
|
|
</xs:attribute>
|
|
<xs:attribute name="AssemblyApplication" type="xs:string">
|
|
<xs:annotation>
|
|
<xs:documentation>
|
|
<html:p>
|
|
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.
|
|
</html:p>
|
|
<html:p>
|
|
The value can be in the form of a file identifier, or a formatted string
|
|
that resolves to either a file identifier or a full path to a file.
|
|
</html:p>
|
|
<html:p>
|
|
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").
|
|
</html:p>
|
|
<html:p>
|
|
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).
|
|
</html:p>
|
|
</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>
|