无法在Windows XP下运行Light Switch 2012程序

时间:2012-08-27 10:55:01

标签: .net windows-xp visual-studio-lightswitch

我已将Lightswitch 2011项目迁移到LS 2012.我通过运行“vslshost.exe”启动已编译的应用程序。这适用于Windows 7(32位和64位,但是当我使用Windows XP启动应用程序失败时(vslshost.exe不是有效的Win32应用程序)。在切换到LS 2012之前一切都很顺利。

应用程序被编译为桌面应用程序,它依赖于可用的SQL数据库,并且不使用内部ApplicationData数据库。 我可以在2台PC上重现这一点,它们都是最新的Windows XP。

在用ildasm查看vslshosts.exe后,我很害怕该项目是针对.NET 4.0编译的。因此,框架并没有随着将项目迁移到LS 2012而改变。

我无法找到有关此问题的任何信息。我只使用VS 2012遇到了一些关于Windows XP和C ++的问题。

你有关于此的任何信息吗?

提前致谢!

2 个答案:

答案 0 :(得分:7)

我遇到了同样的问题,通过执行以下操作成功实现了它。我启动了Visual Studio命令提示符并在可执行文件上运行dumpbin:

dumpbin  /headers vslshost.exe

dumpbin显示子系统版本设置为6(Vista)。奇怪的是OS版本设置为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就好了。

答案 1 :(得分:0)

.NET Framework 4.5至少需要Windows Vista。请参阅the official system requirements

使用Visual Studio 2012时,如果希望应用程序在Windows XP上运行,则必须小心定位.NET 4.0,并且某些功能将不可用(例如,C#5.0 await / { {1}}需要仅在.NET 4.5中提供的运行时支持。

相关问题