Не могу запустить программу Lightswitch 2012 под Windows XP

Я перенес проект Lightswitch 2011 в LS 2012. Я запускаю скомпилированное приложение, запустив vslshost.exe. Это хорошо работает в Windows 7 (32- и 64-разрядной версии, но при использовании Windows XP запуск приложения завершается неудачно (vslshost.exe не является допустимым приложением Win32). До перехода на LS 2012 все прошло нормально.

Приложение скомпилировано как настольное приложение, оно зависит от базы данных SQL, которая доступна и не использует внутреннюю базу данных ApplicationData. Я могу воспроизвести это на 2 компьютерах с обоими версиями Windows XP.

Посмотрев на vslshosts.exe с ildasm, я уверен, что проект был скомпилирован для.NET 4.0. Таким образом, платформа не изменилась с переносом проекта на LS 2012.

Я не смог найти никакой информации относительно этой проблемы. Я только сталкивался с некоторыми проблемами, касающимися Windows XP и C++, используя VS 2012.

У вас есть информация по этому поводу?

Заранее спасибо!

2 ответа

Решение

У меня была та же проблема, мне удалось заставить ее работать, выполнив следующее. Я запустил командную строку Visual Studio и запустил дампбин для исполняемого файла:

dumpbin  /headers vslshost.exe

dumpbin показал, что версия подсистемы была установлена ​​на 6 (Vista). Странно, что версия ОС была установлена ​​на 4. Следуя инструкциям на этой странице http://supportxp.com/2012/03/30/editbins-dirty-little-secret/ Я использовал editbin, чтобы установить номера версий на 5.1 (XP)

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

Протестировал его, и мое приложение до сих пор работало нормально на XP. Я также попытался заставить сгенерированный установщик работать, но он не удался при вызове функции InitializeCriticalSectionEx, которой нет в XP.

Или вы можете развернуть его как настольное приложение со службами, развернутыми в IIS. Этот метод, кажется, поддерживает XP просто отлично.

.NET Framework 4.5 требует как минимум Windows Vista. Смотрите официальные системные требования.

При использовании Visual Studio 2012 вы должны быть внимательны к.NET 4.0, если хотите, чтобы приложение работало в Windows XP, а некоторые функции будут недоступны (например, C# 5.0 await/async требуется поддержка времени выполнения, доступная только в.NET 4.5).

Другие вопросы по тегам