¿Cómo construir un x64, Windows 7 aplicación compatible?
-
23-09-2019 - |
Pregunta
Tenemos una aplicación heredada que tenga acceso al Registro. Debido a que es una aplicación de 32 bits que tiene acceso al registro de Windows 7 a través del Registro de virtualización al hacer referencia a HKEY_LOCAL_MACHINE \ Software. Mi pregunta es qué configuración (s) en Visual Studio do necesitamos modificar para compilar nuestras aplicaciones en las que acceden al registro "normalmente" sin pasar por el Registro de virtualización?
Solución 3
La solución fue compilar la aplicación legado a x64 objetivo. Una aplicación que se dirige explícitamente x64 no estará sujeto a la virtualización de registro.
Otros consejos
Si usted lee la página de registro de virtualización de cerca, usted notará que la virtualización no se limita a Windows de 64 bits. Sólo se establece que sólo los procesos de 32 bits serán virtualizados. Sin embargo, la virtualización se realiza en 32 y 64 bits de Vista y versiones posteriores. Por lo que el título de la pregunta y la etiqueta 64 son un poco engañoso.
Para responder a su pregunta, la misma página dice lo siguiente: "La virtualización del Registro está desactivada en el siguiente:. ... procesos que han requestedExecutionLevel especifica en sus manifiestos"
Así que usted puede desactivar la virtualización mediante la adición de un archivo de manifiesto a su ejecutable que especifica el nivel de ejecución. Hay por lo menos un artículo de Microsoft KB para la forma de hacerlo en Visual Studio 2005: http: // support. microsoft.com/kb/944276 .
¿Por qué no utilizar:
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\...");
return (string)key.GetValue("blah");
y el acceso complemento al registro en el archivo customtrust.config.
o si no que el trabajo en Windows 7?