2012-08-27 12 views
5

He migrado un proyecto Lightswitch 2011 a LS 2012. Inicie la aplicación compilada ejecutando "vslshost.exe". Esto funciona bien con Windows 7 (32 y 64 bits, pero cuando uso Windows XP, la aplicación falla (vslshost.exe no es una aplicación Win32 válida). Antes de cambiar a LS 2012, todo salió bien.No se puede ejecutar Lightswitch 2012 Programm en Windows XP

La aplicación se compila como una aplicación de escritorio, depende de una base de datos SQL que está disponible y no utiliza la base de datos ApplicationData interna. Puedo reproducir esto en 2 PCs, ambas tienen Windows XP actualizado.

Después de mirar vslshosts .exe con ildasm, estoy seguro de que el proyecto se compiló con la orientación .NET 4.0. Por lo tanto, el Framework no cambió con la migración del proyecto a LS 2012.

No he podido encontrar ninguna información con respecto a este problema. Solo encontré algunos problemas con respecto a Windows XP y C++ usando VS 2012.

¿Tiene alguna información sobre esto?

¡Gracias de antemano!

+0

Lightswitch usa .NET, ¿verdad? ¿A qué versión de .NET estás apuntando? –

+0

esa es una buena pregunta, ya que no estoy seguro. No he encontrado ninguna opción para cambiar el objetivo o para ver a qué me refiero. Debe ser al menos .NET 4.0, también puede ser 4.5 – Chake

+0

es .NET 4.0 - Estoy seguro ahora;) – Chake

Respuesta

7

Tuve el mismo problema, logré que funcionase haciendo lo siguiente. Empecé un Visual Studio Comando y corrí dumpbin en el ejecutable:

dumpbin /headers vslshost.exe 

dumpbin demostró que la versión del sistema submarino fue ajustado a 6 (Vista). Curiosamente la versión del sistema operativo se establece en 4. Siguiendo las instrucciones de esta página http://supportxp.com/2012/03/30/editbins-dirty-little-secret/ Solía ​​Editbin para establecer los números de versión a 5.1 (XP)

editbin vslshost.exe /SUBSYSTEM:WINDOWS,5.01 /OSVERSION:5.1 

Probado hacia fuera y mi aplicación que funcione bien en XP hasta el momento. También intenté que el instalador generado funcionara pero falló en una llamada de función a InitializeCriticalSectionEx que no existe en XP.

O puede implementarlo como una aplicación de escritorio con los servicios implementados en IIS. Ese método parece ser compatible con XP.

+0

Neil, ¡salvaste totalmente mi día! ¡Muchas gracias! Chico, vota esto !No puedo, gracias a la reputación m ( – Chake

+0

). También tuvimos que ejecutar la siguiente actualización para VS2012 (KB270250 de VS2012 Update 1 CTP 4) para que el programa de arranque de ClickOnce nos funcionara: http://download.microsoft.com/ descargar/1/D/4/1D49D964-DCEC-4BCA-941A-68C6614E9613/vsupdate_KB2707250.exe –

0

.NET Framework 4.5 requiere al menos Windows Vista. Ver the official system requirements.

Cuando se utiliza Visual Studio 2012, usted tiene que tener cuidado para apuntar .NET 4.0 si desea que la aplicación se ejecute en Windows XP, y algunas funciones no estarán disponibles (por ejemplo, C# 5.0 await/async requieren soporte de ejecución solo disponible en .NET 4.5).

+0

Eché un vistazo al vslshost.exe usando [ildasm] (http://msdn.microsoft) .com/en-us/library/f7dy01k1.aspx): el proyecto se compiló utilizando .NET 4.0. El problema es otro :( – Chake

+0

.NET 4.5 no incrementó el número de versión de los ensamblados del sistema, sus versiones se mantuvieron en 4.0. Dado que ildasm solo mira metadatos y códigos administrados, no mostrará ninguna diferencia obvia entre los ensamblados compilados con TargetFrameworkVersion V4.0 y V4.5. Sin embargo, el encabezado exe nativo es diferente, que se puede ver utilizando dumpbin (como escribió Neil en su respuesta). –

Cuestiones relacionadas