2012-08-27 10 views
5

Ho migrato un progetto Lightswitch 2011 in LS 2012. Avvio l'applicazione compilata eseguendo "vslshost.exe". Funziona bene con Windows 7 (32 e 64 bit, ma quando utilizzo Windows XP l'avvio dell'applicazione non riesce (vslshost.exe ist non è un'applicazione valida per Win32) Prima di passare a LS 2012 è andato tutto beneImpossibile eseguire Lightswitch 2012 Programm in Windows XP

L'applicazione è compilato come applicazione desktop, dipende da un database SQL che è disponibile e non utilizza il database ApplicationData interno Posso riprodurlo su 2 PC, entrambi con Windows XP aggiornato

Dopo aver guardato vslshosts .exe con ildasm, sono sicuro che il progetto è stato compilato con il targeting su .NET 4.0, quindi il framework non è cambiato con la migrazione del progetto a LS 2012.

Non sono riuscito a trovare alcuna informazione riguardo a questo problema. Mi sono imbattuto solo in alcuni problemi riguardanti Windows XP e C++ usando VS 2012.

Avete informazioni in merito?

Grazie in anticipo!

+0

Lightswitch utilizza .NET, giusto? Quale versione di .NET stai prendendo di mira? –

+0

questa è una buona domanda, perché non sono sicuro. Non ho trovato alcuna opzione per cambiare il target o per vedere cosa sto prendendo di mira. Deve essere almeno .NET 4.0, potrebbe anche essere 4.5 – Chake

+0

è .NET 4.0 - Sono shure ora;) – Chake

risposta

7

Ho avuto lo stesso problema, sono riuscito a farlo funzionare come segue. Ho iniziato su un Visual Studio Command Prompt e corsi DUMPBIN sul file eseguibile:

dumpbin /headers vslshost.exe 

dumpbin ha mostrato che la versione del sistema sub è stato fissato a 6 (Vista). Stranamente la versione del sistema operativo è stato impostato su 4. Seguendo le istruzioni in questa pagina http://supportxp.com/2012/03/30/editbins-dirty-little-secret/ ho usato Editbin per impostare i numeri di versione di 5.1 (XP)

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

Provato fuori e la mia domanda è che funziona benissimo su XP finora. Ho anche provato a far funzionare l'installer generato ma non è riuscito su una chiamata di funzione a InitializeCriticalSectionEx che non esiste in XP.

Oppure è possibile distribuirlo come applicazione desktop con i servizi distribuiti su IIS. Questo metodo sembra supportare XP bene.

+0

Neil, hai completamente salvato la mia giornata! Grazie mille! !Non posso, grazie alla reputazione m ( – Chake

+0

Abbiamo anche dovuto eseguire il seguente aggiornamento per VS2012 (KB270250 da VS2012 Update 1 CTP 4) in modo che il bootstrapper ClickOnce funzionasse per noi: http://download.microsoft.com/ scaricare/1/D/4/1D49D964-DCEC-4BCA-941A-68C6614E9613/vsupdate_KB2707250.exe –

0

.NET Framework 4.5 richiede almeno Windows Vista. Vedi the official system requirements.

quando si utilizza Visual Studio 2012, è necessario stare attenti a bersaglio .NET 4.0 se si desidera che l'applicazione per funzionare su Windows XP e alcune funzioni non saranno disponibili (ad esempio, C# 5.0 await/async richiedono supporto runtime disponibile solo in .NET 4.5).

+0

Ho dato un'occhiata a vslshost.exe usando [ildasm] (http://msdn.microsoft .com/it/us/library/f7dy01k1.aspx) - il progetto è stato compilato utilizzando .NET 4.0. Quindi il problema è un altro :( – Chake

+0

. NET 4.5 non ha incrementato il numero di versione degli assembly di sistema, le loro versioni sono rimaste a 4.0. Perché ildasm cerca solo metadati e codice gestiti, non mostrerà alcuna differenza evidente tra gli assembly compilati con TargetFrameworkVersion V4.0 e V4.5 Tuttavia, l'intestazione nativa di exe è diversa, che può essere vista usando dumpbin (come Neil ha scritto nella sua risposta) –

Problemi correlati