Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La versione del sistema operativo è stata incrementata con la versione del sistema operativo Windows 10. Ciò significa che anche il numero di versione interno per Windows 10 è stato modificato in 10.0. Come in passato, Microsoft si impegna al massimo per mantenere la compatibilità di applicazioni e dispositivi dopo un cambiamento di versione del sistema operativo. Per la maggior parte delle categorie di app (senza dipendenze del kernel), la modifica non influirà negativamente sulle funzionalità dell'app e le app esistenti continueranno a funzionare correttamente nelle Windows 10.
Manifestazioni
Gli effetti di questa modifica dipendono dalle app. Questo significa che le app che controllano in modo specifico la versione del sistema operativo otterranno un numero di versione superiore, con queste possibili conseguenze:
- È possibile che i programmi di installazione delle app non riescano a installare le app e che le app non si avviino.
- Le app potrebbero diventare instabili o subire arresti anomali.
- Le app potrebbero generare messaggi di errore, ma continuare a funzionare correttamente.
Alcune app eseguono un controllo della versione e si limitano a inviare un avviso agli utenti. Esistono tuttavia alcune app strettamente vincolate al controllo della versione (nei driver o in modalità kernel per evitare il rilevamento). In questi casi, si verifica un errore dell'app se viene rilevata una versione errata. Invece del controllo della versione, è consigliabile uno degli approcci seguenti:
- Se l'app dipende da funzionalità API specifiche, assicurati di usare come destinazione la versione dell'API corretta.
- Il numero di versione NTDDI (NT Device Driver Interface) viene incrementato solo se la funzionalità di destinazione nell'API cambia. Assicurarsi di rilevare la modifica tramite APISet o altre API esposte create dal team di funzionalità e non usare la versione come proxy per alcune funzionalità o correzioni. Se sono presenti modifiche importanti e non viene esposto un controllo appropriato, si tratta di un bug.
- Assicurarsi che l'app non controlli la versione in modi strani, ad esempio tramite il Registro di sistema, le versioni dei file, gli offset, la modalità kernel, i driver o altri mezzi. Se l'app deve assolutamente controllare la versione, usare le API GetVersion, che devono restituire il numero principale, secondario e di build.
- Se si usa l'API GetVersion o altre funzioni helper della versione, ad esempio VerifyVersionInfo, tenere presente che il comportamento di questa API è cambiato da Windows 8.1. Per altre informazioni, vedere la documentazione dell'API .
- Se si possiedono app come antimalware o firewall, è consigliabile usare i consueti canali di feedback e tramite il programma Windows Insider.
Manifesto dell'app
Di seguito è riportato un manifesto dell'app di esempio:
<exe>.manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<assemblyIdentity
type="win32"
name=SXS_ASSEMBLY_NAME
version=SXS_ASSEMBLY_VERSION
processorArchitecture=SXS_PROCESSOR_ARCHITECTURE
/>
<description> my app exe </description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"
/>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
* <!-- Windows 10 -->
* <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
</application>
</compatibility>
</assembly>
Aggiungere queste variabili alle origini:
- SXS_MANIFEST_RESOURCE_ID=1
- SXS_MANIFEST=foo.manifest
- SXS_ASSEMBLY_NAME=Microsoft.Windows.Foo
- SXS_ASSEMBLY_VERSION=1.0
- SXS_ASSEMBLY_LANGUAGE_INDEPENDENT=1
- SXS_MANIFEST_IN_RESOURCES=1
Per Windows 10, le due righe sopra contrassegnate con un asterisco (*) mostrano come specificare in modo accurato l'applicazione per la versione Windows 10 del sistema operativo. Il manifesto del .exe per Windows 10 non avrà alcun impatto sull'esecuzione nelle versioni precedenti del sistema operativo Windows. È anche possibile aggiungerlo al file RC, se è già stato definito. L'aggiunta di trustInfo non è essenziale, ma è consigliabile. Ciò consentirà al .exe di ottenere sempre la versione corretta, indipendentemente dal fatto che il sistema operativo sia Windows 10 o Windows 8.1.