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?

¿Fue útil?

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?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top