|Id||String||The identifier for this NativeImage.||Yes|
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.
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.
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.
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.
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).
|Debug||YesNoType||Set to "yes" to generate native images that can be used under a debugger. The default value is "no".|
|Dependencies||YesNoType||Set to "no" to generate the minimum number of native images. The default value is "yes".|
|Platform||Enumeration|| Sets the platform(s) for which native images will be generated. This attribute's value must be one of the following:
|Priority||Enumeration|| Sets the priority of generating the native images for this assembly. This attribute's value must be one of the following:
|Profile||YesNoType||Set to "yes" to generate native images that can be used under a profiler. The default value is "no".|
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.
Note for patches: 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.
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.