com4:Extension
Fornisce funzionalità per esporre le registrazioni COM ai client all'esterno del pacchetto dell'app. L'estensione com4 è una nuova versione che è un superset di e la sostituzione per le versioni precedenti dello schema COM. Per altre informazioni, vedere la sezione Osservazioni.
Gerarchia degli elementi
<com4:Extension>
<com4:Extension>
Sintassi
<com4:Extension
Category = 'A string that can have one of the following values: "windows.comServer" or "windows.comInterface".'
Executable = 'An optional string with a value between 1 and 256 characters in length that must end with ".exe" and cannot contain these characters: <, >, :, ", |, ?, or *.'
EntryPoint = 'An optional string with a value between 1 and 256 characters in length that cannot start or end with a whitespace character.'
RuntimeType = 'An optional string with a value between 1 and 255 characters in length that cannot start or end with a period or contain these characters: <, >, :, ", /, \, |, ?, or *.'
StartPage = 'An optional string with a value between 1 and 256 characters in length that cannot contain these characters: <, >, :, ", |, ?, or *.'
ResourceGroup = 'An optional alphanumeric string with a value between 1 and 255 characters in length. Must begin with a letter.'
TrustLevel = 'An optional string the can have one of the following values: "appContainer" or "mediumIL".'
RuntimeBehavior = 'An optional string the can have one of the following values: "windowsApp", "packagedClassicApp", or "win32App".'
HostId = 'An optional alphanumeric string with a value between 1 and 255 characters in length. Must begin with a letter.'
Parameters = 'An optional string with a value between 1 and 32767 characters in length with a non-whitespace character at its beginning and end.'
uap11:Id = 'An optional string with a value between 1 and 255 characters in length with a non-whitespace character at its beginning and end.'
uap11:Subsystem = 'An optional string that can have one of the following values: "console" or "windows".'
uap11:SupportsMultipleInstances = 'An optional boolean value.'
uap11:ResourceGroup = 'An optional alphanumeric string with a value between 1 and 255 characters in length. Must begin with a letter.'
uap11:CurrentDirectoryPath = 'An optional string that cannot contain these characters: <, >, |, ?, or *. >'
uap11:Parameters = 'An optional string with a value between 1 and 32767 characters in length with a non-whitespace character at its beginning and end.'
desktop7:CompatMode = 'An optional string the can have one of the following values: "classic" or "modern".'
desktop7:Scope = 'An optional string that can have one of the following values: "machine" or "user".' />
<!-- Child elements -->
com4:ComServer
com4:ComInterface
</com4:Extension>
Attributi ed elementi
Attributi
Attributo | Descrizione | Tipo di dati | Obbligatorio | Valore predefinito |
---|---|---|---|---|
categoria | Tipo di punto di estendibilità dell'app. | Stringa che può avere uno dei valori seguenti: windows.comServer o windows.comInterface. | Sì | |
|
Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. | Stringa facoltativa con un valore compreso tra 1 e 256 caratteri che deve terminare con .exe e non può contenere questi caratteri: < , > , : , " , | , ? o * . |
No | |
EntryPoint | Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. | Stringa facoltativa con un valore compreso tra 1 e 256 caratteri di lunghezza che non può iniziare o terminare con un carattere di spazio vuoto. | No | |
runtimeType | Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. | Stringa facoltativa con un valore compreso tra 1 e 255 caratteri che non può iniziare o terminare con un punto o contenere questi caratteri: < , > , : , " , / , \ , | , ? o * . |
No | |
StartPage | Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. | Stringa facoltativa con un valore compreso tra 1 e 256 caratteri che non può contenere questi caratteri: < , > , : , " , | , ? o * . |
No | |
ResourceGroup | Tag che è possibile usare per raggruppare le attivazioni dell'estensione per scopi di gestione delle risorse, ad esempio CPU e memoria. Il valore che è possibile impostare ResourceGroup è in formato libero e flessibile. Vedere Application@ResourceGroup. | Stringa alfanumerica facoltativa con un valore compreso tra 1 e 255 caratteri. Deve iniziare con una lettera. | No | |
uap10:TrustLevel | Specifica il livello di attendibilità dell'estensione. Nella versione corrente questo attributo non è supportato per l'estensione com4. Il valore "mediumIL" viene sempre usato. | Una stringa facoltativa può avere uno dei valori seguenti: appContainer o medioIL. | No | |
uap10:RuntimeBehavior | Specifica il comportamento di runtime dell'estensione. Nella versione corrente questo attributo non è supportato per l'estensione com4. Il valore "packagedClassicApp" viene sempre usato. | Una stringa facoltativa che può avere uno dei valori seguenti: windowsApp, packagedClassicAppo win32App. | No | |
uap10:HostId | Questo valore specifica l'ID del runtime host per l'estensione. | Stringa alfanumerica facoltativa con un valore compreso tra 1 e 255 caratteri. Deve iniziare con una lettera. | No | |
uap10:Parameters | Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. | Stringa facoltativa con un valore compreso tra 1 e 32767 caratteri con un carattere non vuoto all'inizio e alla fine. | No | |
uap11:Id | Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. | Stringa facoltativa con un valore compreso tra 1 e 255 caratteri con un carattere non vuoto all'inizio e alla fine. | No | |
uap11:Subsystem | Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. | Stringa facoltativa che può avere uno dei valori seguenti: console o windows. | No | |
uap11:SupportsMultipleInstances | Specifica se le istanze devono essere eseguite in processi diversi. Il valore predefinito è false. | Valore booleano facoltativo. | No | |
uap11:ResourceGroup | Tag che è possibile usare per raggruppare le attivazioni dell'estensione per scopi di gestione delle risorse, ad esempio CPU e memoria. Il valore che è possibile impostare ResourceGroup è in formato libero e flessibile. Vedere Application@ResourceGroup. | Stringa alfanumerica facoltativa con un valore compreso tra 1 e 255 caratteri. Deve iniziare con una lettera. | No | |
uap11:CurrentDirectoryPath | Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. Questo attributo supporta le macro. Per altre informazioni, vedere macro nello schema del manifesto del pacchetto. | Stringa facoltativa che non può contenere questi caratteri: < , > , | , ? o * . > |
No | |
uap11:Parameters | Questo attributo viene ereditato dalla sintassi dell'estensione di base e non è applicabile all'estensione com4. Oltre alla convalida sintattica, questo valore viene ignorato. Questo attributo supporta le macro. Per altre informazioni, vedere macro nello schema del manifesto del pacchetto. | Stringa facoltativa con un valore compreso tra 1 e 32767 caratteri con un carattere non vuoto all'inizio e alla fine. | No | |
desktop7:CompatMode | Specifica se le informazioni di questa estensione vengono registrate in Windows in modi classici (ad esempio, le app non in pacchetto registrano tipi con COM tramite il Registro di sistema) o in nuovi modi più con ambito. Il valore predefinito è "modern". CompatMode="classic" richiede la funzionalità Microsoft.classicAppCompat_8wekyb3d8bbwe. | Una stringa facoltativa può avere uno dei valori seguenti: classico o moderno . | No | |
desktop7:Scope | Specifica se le registrazioni sono visibili solo ad altre applicazioni in esecuzione come utente che ha registrato questo pacchetto (utente) o se sono visibili a tutti gli utenti e i servizi nel computer (computer). Il valore predefinito è "user". Scope="machine" richiede la funzionalità di Microsoft.classicAppCompatElevated_8wekyb3d8bbwe. | Stringa facoltativa che può avere uno dei valori seguenti: computer o utente. | No |
Elementi figlio
Elemento figlio | Descrizione |
---|---|
com4:ComServer | L'estensione comServer può includere registrazioni di classe, inclusi i dettagli di attivazione per i server che implementano queste classi e le registrazioni ProgId e TreatAsClass, che forniscono identificatori aggiuntivi usati per fare riferimento a queste classi in fase di esecuzione. |
com4:ComInterface | Dichiara un punto di estensione del pacchetto di tipo windows.comInterface (com4:ComInterface). |
Elementi padre
Elemento figlio | Descrizione |
---|---|
estensioni |
Definisce uno o più punti di estendibilità per l'app. |
Osservazioni
L'estensione com4 è essenzialmente una riscrittura della sintassi dell'estensione windows.comServer/windows.comInterface precedente. Questa estensione è un superset delle funzionalità di estensione com precedenti, con un comportamento identico per la sintassi ereditata. La convalida del manifesto per la nuova sintassi usata nella creazione di pacchetti è più allineata ai requisiti semantici dell'estensione.
- Nella versione precedente, ogni estensione è stata considerata come un documento separato, consentendo la convalida di chiavi non univoche e riferimenti incerti.
- Nella versione precedente, la duplicazione degli attributi soggetti a vincoli univoci/chiave è stata intercettata dalla convalida del manifesto solo se gli attributi duplicati vengono visualizzati nella stessa istanza dell'estensione. I pacchetti duplicati di questi attributi non riuscirebbero a essere distribuiti, con informazioni di diagnostica limitate per identificare il problema.
- Nella versione precedente, un keyref il cui referenziale si trova in un'istanza diversa dell'estensione verrebbe bloccato dalla convalida del manifesto, ovvero una restrizione artificiale rispetto al supporto del comportamento di distribuzione/runtime.
Le applicazioni destinate a Windows 11 che possono usare il nuovo spazio dei nomi com4 per tutte le estensioni windows.comServer/windows.comInterface devono usarlo. Non è consigliabile combinare il nuovo spazio dei nomi con gli spazi dei nomi precedenti, ad esempio:
- La distribuzione del pacchetto nelle versioni che supportano il nuovo spazio dei nomi gestirà le estensioni da tutti gli spazi dei nomi e tutti gli identificatori univoci duplicati tra le estensioni che usano versioni diverse dello spazio dei nomi genereranno un errore. L'uso degli spazi dei nomi meno recenti impedisce alla convalida del manifesto di rilevare questi errori.
- A causa delle limitazioni degli schemi dello spazio dei nomi meno recenti, un keyref nella sintassi precedente non può fare riferimento a una chiave nella nuova sintassi perché si trovano in istanze diverse dell'estensione.
L'uso della semantica della sintassi com4 seguente ha requisiti di funzionalità:
- CompatMode="classic" richiede Microsoft.classicAppCompat_8wekyb3d8bbwe
- Scope="machine" richiede Microsoft.classicAppCompatElevated_8wekyb3d8bbwe
Nell'esempio seguente viene illustrato come registrare un'implementazione out-of-process e un'implementazione del server in-process per la stessa classe.
Esempi
<com4:Class Id="f4ed7720-9b3a-44a4-xxxx-xxxxxxxxxxxx" DisplayName="CLSID_Foo"/>
<com:ExeServer Executable="MyServer.exe" DisplayName="My server">
<com4:ClassReference Id="f4ed7720-9b3a-44a4-xxxx-xxxxxxxxxxxx"/>
</com:ExeServer>
<com4:InProcessServer Path="MyServer.dll">
<com4:ClassReference Id="f4ed7720-9b3a-44a4-xxxx-xxxxxxxxxxxx"/>
</com4:InProcessServer>
Nuove funzionalità nell'estensione com4
- Supporto per i server in-process (sia non gestiti che gestiti) e i gestori in-process personalizzati (ovvero, non per il gestore predefinito OLE). Questa funzionalità è attualmente limitata dal livello funzionale e limitata dai criteri:
- Questo è attualmente destinato all'uso solo da pacchetti con posizione esterna; non funziona per la maggior parte dei pacchetti normali a causa degli ACL nel percorso di installazione che impediscono il caricamento delle DLL del pacchetto all'esterno del pacchetto. Per altre informazioni sui pacchetti con posizione esterna, vedere Concedere l'identità del pacchetto tramite creazione di pacchetti con percorso esterno.
- È ora possibile associare un TypeLib a una registrazione di classe.
Fabbisogno
Articolo | Valore |
---|---|
spazio dei nomi | http://schemas.microsoft.com/appx/manifest/com/windows10/4 |
versione minima del sistema operativo | Windows 10 (Build 20348) |