无法在Windows XP下运行Lightswitch 2012程序

问题描述:

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

应用程序被编译为桌面应用程序,它依赖于一个SQL数据库,这是可用的,并且不使用内部ApplicationData数据库 我可以在2台PC上重现这两个Windows XP最新。 .exe与ildasm,我是舒尔该项目编译为.NET 4.0。所以框架没有改变与项目迁移到LS 2012.

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

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

在此先感谢!

+0

Lightswitch使用.NET,对吧?你定位的.NET版本是什么? –

+0

这是一个很好的问题,因为我不舒服。我还没有找到任何选择来改变目标或看到我的目标。它必须至少是.NET 4.0,它可能也是4.5 – Chake

+0

它是.NET 4.0 - 我现在很舒服;) – Chake

我有同样的问题,设法通过执行以下操作来实现它。我开始了一个Visual Studio命令提示符并运行DUMPBIN上的可执行:

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工作正常为止。我也试着让生成的安装程序能够正常工作,但是它对XP中不存在的InitializeCriticalSectionEx函数调用失败。

或者您可以将它部署为桌面应用程序,并将服务部署到IIS。该方法似乎支持XP就好了。

+0

Neil,你完全保存了我的一天!非常感谢! !我不能,由于声誉m( – Chake

+0

我们还必须运行VS2012(VS2012 Update 1 CTP 4中的KB270250)的以下更新,以便ClickOnce引导程序可以为我们工作:http://download.microsoft.com/下载/ 1/d/4/1D49D964-DCEC-4BCA-941A-68C6614E9613/vsupdate_KB2707250.exe –

.NET Framework 4.5至少需要Windows Vista。见the official system requirements

使用Visual Studio 2012时,如果希望应用程序在Windows XP上运行,并且某些功能将不可用(例如,C#5.0 await/async需要运行时支持只在.NET 4.5中可用)。

+0

我看了vslshost.exe使用[ildasm](http://msdn.microsoft .com/en-us/library/f7dy01k1.aspx) - 该项目是使用.NET 4.0编译的。所以问题是另一个:( – Chake

+0

.NET 4.5没有增加系统程序集的版本号,它们的版本仍然是4.0,因为ildasm只能看到托管的元数据和代码,它不会显示使用TargetFrameworkVersion编译的程序集之间的任何明显差异V4.0和V4.5。但是,本机的exe头文件是不同的,这可以通过使用dumpbin来看到(如Neil在他的回答中所写的那样) –