Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La versión del sistema operativo se ha incrementado con la versión del sistema operativo Windows 10. Esto significa que el número de versión interna de Windows 10 también se ha cambiado a 10.0. Como ya sucedió en su día, hacemos todo lo posible para mantener la compatibilidad de los dispositivos y las aplicaciones tras un cambio de versión del sistema operativo. En la mayoría de las categorías de aplicaciones (sin dependencias de kernel), el cambio no afectará negativamente a la funcionalidad de la aplicación y las aplicaciones existentes seguirán funcionando correctamente en Windows 10.
Manifestaciones
La manifestación de este cambio es específica de cada aplicación. Esto significa que cualquier aplicación que compruebe específicamente la versión del sistema operativo obtendrá un número de versión superior, lo que puede ocasionar una o varias de las siguientes situaciones:
- Es posible que los instaladores de aplicaciones no puedan instalar la aplicación y que las aplicaciones no puedan iniciarse.
- Las aplicaciones podrían volverse inestables o bloquearse.
- Las aplicaciones podrían generar mensajes de error, pero seguir funcionando correctamente.
Algunas aplicaciones realizan una comprobación de la versión y simplemente muestran una advertencia a los usuarios. Sin embargo, hay aplicaciones que están enlazadas muy estrechamente a una comprobación de la versión (por ejemplo, en los controladores o en el modo kernel para evitar la detección). En estos casos, si se encuentra una versión incorrecta, se producirá un error en la aplicación. En lugar de una comprobación de la versión, recomendamos uno de los siguientes métodos:
- Si la aplicación depende de la funcionalidad de una API específica, asegúrate de que apuntas a la versión correcta de dicha API.
- El número de versión de NTDDI (interfaz del controlador de dispositivo NT) solo aumentará si cambia la funcionalidad de destino en la API. Asegúrese de detectar el cambio a través de APISet u otra API expuesta como creada por el equipo de características y no use la versión como proxy para alguna característica o corrección. Si hay cambios importantes y no se expone una comprobación adecuada, se trata de un error.
- Asegúrese de que la aplicación no comprueba la versión de maneras impares, como a través del Registro, las versiones de archivo, los desplazamientos, el modo kernel, los controladores u otros medios. Si la aplicación necesita comprobar absolutamente la versión, use las API GetVersion, que deben devolver el número principal, secundario y de compilación.
- Si usa la API GetVersion u otras funciones auxiliares de versión, como VerifyVersionInfo, recuerde que el comportamiento de esta API ha cambiado desde Windows 8.1. Consulte la documentación de la API para obtener más detalles.
- Si posees aplicaciones como antimalware o firewall, debes trabajar a través de tus canales de comentarios habituales y a través del programa Windows Insider.
Manifiesto de aplicación
A continuación se muestra un manifiesto de aplicación de ejemplo:
<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>
Agregue estas variables a los orígenes:
- 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
Por Windows 10, las dos líneas anteriores marcadas con un asterisco (*) muestran cómo dirigirse con precisión a la aplicación para la versión de Windows 10 del sistema operativo. El manifiesto de la .exe para Windows 10 no tendrá ningún impacto cuando se ejecute en versiones anteriores del sistema operativo Windows. También puede agregar esto al archivo .rc si ya lo tiene definido. Agregar trustInfo no es esencial, pero se recomienda encarecidamente. Esto permitirá que el .exe obtenga siempre la versión correcta, independientemente de si el sistema operativo está Windows 10 o Windows 8.1.