2012-08-27 3 views
5

Lightswitch 2011 프로젝트를 LS 2012로 마이그레이션했습니다. "vslshost.exe"를 실행하여 컴파일 된 응용 프로그램을 시작합니다. 이 기능은 Windows 7 (32 비트 및 64 비트)을 사용하면 잘 작동하지만 응용 프로그램을 시작하면 Windows XP를 사용할 때 오류가 발생합니다 (vslshost.exe ist가 유효한 Win32- 응용 프로그램이 아닙니다.) LS 2012로 전환하기 전에 모든 것이 정상적으로 진행되었습니다 ..Windows XP에서 Lightswitch 2012 Programm을 실행할 수 없습니다.

응용 프로그램Windows XP를 최신 상태로 유지하고있는 두 PC 모두에서 이것을 재현 할 수 있습니다.

vslshosts를보고 난 후 .exe를 ildasm으로 변경 했으므로 프로젝트가 .NET 4.0을 대상으로 컴파일되었으므로 프로젝트가 LS 2012로 마이그레이션 될 때 프레임 워크가 변경되지 않았습니다.

이 문제와 관련된 정보를 찾을 수 없었습니다. VS 2012를 사용하는 Windows XP 및 C++와 관련된 몇 가지 문제에 대해서만 알게되었습니다.

이것에 대한 정보가 있습니까?

미리 감사드립니다.

+0

Lightswitch는 .NET을 사용합니다. 맞습니까? 어떤 버전의 .NET을 목표로합니까? –

+0

그게 좋은 질문이야, 내가 shure 아니에요. 나는 표적을 바꾸거나 나가 표적으로하고있는 무슨을보기 위하여 어떤 선택권도 찾아 내지 않았다. 적어도 .NET 4.0 이상이어야합니다. 또한 4.5 – Chake

+0

이 될 수도 있습니다. .NET 4.0 - 이제는 shure입니다.) – Chake

답변

7

동일한 문제가 발생하여 다음 작업을 수행하여 문제를 해결할 수있었습니다. 난 비주얼 스튜디오 명령 프롬프트를 시작하고 실행에 DUMPBIN 실행 :

dumpbin /headers vslshost.exe 

DUMPBIN 서브 시스템의 버전 ​​6 (비스타)로 설정 한 것으로 나타났다. 이상하게 OS 버전은 내가 5.1 (XP)에 버전 번호를 설정

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

그것을 밖으로 테스트 내 응용 프로그램이 지금까지 XP에서 제대로 작동하는 EDITBIN을 사용하여이 페이지 http://supportxp.com/2012/03/30/editbins-dirty-little-secret/의 지침에 따라 4로 설정했다. 또한 생성 된 설치 관리자가 작동하도록 시도했지만 XP에서 존재하지 않는 InitializeCriticalSectionEx에 대한 함수 호출에 실패했습니다.

또는 서비스를 IIS에 배포 한 데스크톱 응용 프로그램으로 배포 할 수 있습니다. 그 방법은 XP를 잘 지원하는 것 같습니다.

+0

닐, 완전히 하루를 구 했군! 고맙습니다. !나도 평판 m 덕분에 ( – Chake

+0

) VS2012 (VS2012 업데이트 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을 참조하십시오. 예를 들어, C# 5.0 await/async 런타임 지원을 필요로 (비주얼 스튜디오 2012를 사용하는 경우

, 당신은 Windows XP에서 실행할 수있는 응용 프로그램을 원하는 경우 .NET 4.0을 대상으로하는주의해야하고, 일부 기능을 사용할 수 없습니다 .NET 4.5에서만 사용 가능).

+0

[ildasm] (http://msdn.microsoft)을 사용하여 vslshost.exe를 살펴 보았습니다. .com/en-us/library/f7dy01k1.aspx) - 프로젝트는 .NET 4.0을 사용하여 컴파일되었습니다. 따라서 문제는 또 하나입니다 : ( – Chake

+0

) .NET 4.5는 시스템 어셈블리의 버전 번호를 증가시키지 않았고 해당 버전은 4.0으로 유지되었습니다. ildasm은 관리되는 메타 데이터와 코드 만 확인하기 때문에 TargetFrameworkVersion으로 컴파일 된 어셈블리간에 명백한 차이가 나타나지 않습니다 V4.0 및 V4.5. 그러나 네이티브가 덤핑 빈을 사용하여 볼 수있는 네이티브 exe 헤더는 다릅니다 (닐이 그의 답변에 쓴 것처럼). –

관련 문제