2012-08-27 56 views
5

我已經將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

回答

7

我有同樣的問題,設法通過執行以下操作來實現它。我開始了一個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 –

0

.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在他的回答中所寫的那樣) –

相關問題