Edit

Share via


Extensions (in Package)

Defines one or more extensibility points for the package.

Element hierarchy

<Package>
   └─ <Extensions>

Syntax

<Extensions>

  <!-- Child elements -->
  Extension{1,10000}

</Extensions>

Key

{}   specific range of occurrences

Attributes and elements

Attributes

None.

Child elements

Child element Description
Extension Declares an extensibility point for the package. The type of extension is defined by the Category attribute. See the extension category table in the Remarks section below for the list of allowed categories and the Extension element that defines each one.

Parent elements

Parent element Description
Package Defines the root element of an app package manifest. The manifest describes the structure and capabilities of the software to the system.

See also

The following elements have the same name as this one, but different content or attributes:

Remarks

Extensibility points are a mechanism by which an app can add functionality in a manner defined by the operating system. An example of a package extensibility point is the ability to specify a dynamic-link library or executable that contains activatable classes that your code uses.

The Extension elements that can be included under the Package/Extensions element are enforced by the XML schema. Each of these Extension elements have a required Category attribute that specifies one or more extension points that the extension supports. Some extensions support both application and package extension categories. The following table lists the extension categories supported for package extensions and the associated Extension element that supports each category. A category can be supported for multiple extensions as a versioning mechanism.

Extension category Extension
windows.activatableClass.inProcessServer f:Extension
windows.activatableClass.outOfProcessServer f:Extension
windows.activatableClass.proxyStub f:Extension
windows.certificates f:Extension
windows.classicAppCompatKeys rescap4:Extension
windows.comInterface com:Extension, com2:Extension, com4:Extension
windows.comServer com:Extension, com2:Extension, com4:Extension
windows.customDesktopEventLog desktop10:Extension
windows.customInstall desktop6:Extension
windows.dataProtection uap8:Extension
windows.dataShortcuts desktop10:Extension
windows.deploymentStateHandler deployment3:Extension
windows.desktopEventLogging desktop2:Extension
windows.enterpriseDataProtection uap7:Extension
windows.errorReporting desktop7:Extension
windows.eventTracing desktop8:Extension
windows.firewallRules desktop2:Extension
windows.folder desktop10:Extension
windows.hostRuntime uap10:Extension
windows.installedLocationVirtualization uap10:Extension
windows.loaderSearchPathOverride uap6:Extension
windows.mediaContentDecryptionModule uap10:Extension
windows.mutablePackageDirectories desktop6:Extension, desktop8:Extension
windows.packageExtension uap17:Extension
windows.packageExtensionHost uap17:Extension
windows.packagingExtension deployment3:Extension
windows.primaryInteropAssemblies rescap4:Extension
windows.publisherCacheFolders f:Extension
windows.shadowCopyExcludeFiles desktop7:Extension
windows.sharedFonts uap7:Extension
windows.sipExtension deployment3:Extension
windows.userMutablePackageDirectories desktop8:Extension

Examples

The following example is taken from the package manifest of one of the SDK samples.

<Package>
  <Extensions>
    <Extension Category="windows.activatableClass.proxyStub">
      <ProxyStub ClassId="332fd2f1-1c69-4c91-949e-4bb67a85bdc5">
        <Path>Microsoft.Samples.DllServerAuthoring.Proxies.dll</Path>
        <Interface Name="IToaster" InterfaceId="6a112353-4f87-4460-a908-2944e92686f3" />
        <Interface Name="IToast" InterfaceId="699b1394-3ceb-4a14-ae23-efec518b088b" />
        <Interface Name="IAppliance" InterfaceId="332fd2f1-1c69-4c91-949e-4bb67a85bdc5" />
      </ProxyStub>
    </Extension>
    <Extension Category="windows.activatableClass.inProcessServer">
      <InProcessServer>
        <Path>Microsoft.Samples.DllServerAuthoring.dll</Path>
        <ActivatableClass ActivatableClassId="Microsoft.Samples.DllServerAuthoring.Toaster" ThreadingModel="both" />
      </InProcessServer>
    </Extension>
  </Extensions>
</Package>

See also

Requirements

Item Value
Namespace http://schemas.microsoft.com/appx/manifest/foundation/windows10