のVisual Studioコマンドプロンプトから、次のコマンドを実行します。
Dumpbin.exe /headers c:\where\you\put\it\setup.exe
「SETUP.EXE」は、あなたのインストーラの作成者によって作成されたセットアップEXEあるところ。ここで重要な情報の例を掲載します:
OPTIONAL HEADER VALUES
10B magiC# (PE32)
...
4.00 operating system version
0.00 image version
6.00 subsystem version // <=== here!!
0 Win32 version
...
サブシステムのバージョン番号は重要です。 VS2012はVisual Studioの最初のバージョンで、この値をVistaのバージョン番号である6.00に設定し始めました。以前のバージョンと、.NET 4.0以前のバージョンをターゲットにしたVS2012では、このバージョン番号が4.00に設定されます。
これは、XPに対するサポートを段階的に廃止する重要な前進です。 Windowsバージョン6.00以降、Vista、Win7、Win8はこの番号に注意してください。彼らはあなたのプログラムがWindowsの後の機能を認識しておらず、いくつかのアプリケーションシムを有効にする必要があると仮定します。最も注目に値するのは、マウスで簡単にクリックできる太い枠線を持つウィンドウを表示するデスクトップテーマのAeroです。 Windowsはその境界線を横たえ、ウィンドウが実際よりも小さいことを伝えます。 Windowsをお互いに整列させようとするプログラマーにとっての混乱の大きな原因です。
表示される6.00が表示される結果、セットアッププログラムはXPでは実行できなくなります。バージョン5.02です。
ターゲット.NETバージョン4.5でないことをまず確認してください。これはXPでは利用できません。代わりに4.0を使用してください。それでも問題が解決しない場合は、ベンダーのサポートに連絡して、ツールが作成するsetup.exeファイルでその番号を制御する方法を尋ねます。この問題を回避するには、Editbin.exeを/ SUBSYSTEMオプションで実行して番号を変更します。
これはおそらく、Windows XPマシンには存在しない.NET 4.5フレームワークを探しています。 –
@AlexBellおそらく、またはアーキテクチャの問題かもしれません。この.exeはx86またはx64としてコンパイルされましたか? – Adrian
可能であれば、Net Framework 4.0を使用するようにアプリケーションを再調整してください。 – Steve