5

Lightswitch2011プロジェクトをLS2012に移行しました。「vslshost.exe」を実行して、コンパイル済みアプリケーションを起動します。これは、Windows 7(32ビットおよび64ビット)を使用するとうまく機能しますが、Windows XPを使用すると、アプリケーションの起動に失敗します(vslshost.exeは有効なWin32アプリケーションではありません)。LS2012に切り替える前は、すべて問題ありませんでした。

アプリケーションはデスクトップアプリケーションとしてコンパイルされます。これは、使用可能なSQLデータベースに依存し、内部のApplicationDataデータベースを使用しません。これは、最新のWindowsXPを搭載した2台のPCで再現できます。

ildasmでvslshosts.exeを確認した後、プロジェクトが.NET4.0を対象としてコンパイルされたと確信しています。そのため、プロジェクトをLS2012に移行してもフレームワークは変わりませんでした。

この問題に関する情報は見つかりませんでした。VS2012を使用しているWindowsXPとC++に関するいくつかの問題に遭遇しただけです。

これについて何か情報はありますか?

前もって感謝します!

4

2 に答える 2

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で正常に動作しています。また、生成されたインストーラーを機能させようとしましたが、XPに存在しないInitializeCriticalSectionExへの関数呼び出しで失敗しました。

または、IISに展開されたサービスを使用してデスクトップアプリケーションとして展開することもできます。その方法はXPをうまくサポートしているようです。

于 2012-08-31T20:41:35.347 に答える
0

.NET Framework 4.5 には、少なくとも Windows Vista が必要です。公式のシステム要件を参照してください。

Visual Studio 2012 を使用する場合、アプリケーションを Windows XP で実行する場合は、.NET 4.0 をターゲットにするように注意する必要があり、一部の機能は使用できません (たとえば、C# 5.0 await/ async.NET 4.5 でのみ使用可能なランタイム サポートが必要) )。

于 2012-08-28T15:39:02.180 に答える