2013-05-09 452 views
9

私はVisual Studio 2012 Professionalを使用しており、高度なインストーラ(サードパーティ製)を使用してインストーラを作成しています。.exeはWindows XP上で有効なWin32アプリケーションではありません

私は、Windows XPにインストール.exeファイルを実行すると、私は次のメッセージが出ます:

<をappNameの> .exeファイルは有効なWin32アプリケーションではありません。

インストール実行ファイルは、Windows 7と8の両方で正常に動作します

どのように私はプログラムをWindows XP上で動作するように得ることができますか?

+0

これはおそらく、Windows XPマシンには存在しない.NET 4.5フレームワークを探しています。 –

+1

@AlexBellおそらく、またはアーキテクチャの問題かもしれません。この.exeはx86またはx64としてコンパイルされましたか? – Adrian

+0

可能であれば、Net Framework 4.0を使用するようにアプリケーションを再調整してください。 – Steve

答えて

16

の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オプションで実行して番号を変更します。

+0

Windows Server 2012を使用すると、私はeditbin.exeが役に立たないことがわかりました。私のソリューションでは、IExpress.exe(system32バージョン)を使用して、setup.msiをframeworknet40でパッケージ化します。各dllはInstall.msiを含むx86でコンパイルされますが、IExpressはマシンをx64(dumpbin.exeのFILE HEADER VALUESの結果)として設定します。私が有効なsetup.exeを作成することができたのは、Win XP 32ビットマシンでIExpress.exeを使用したときだけでした。 – JDennis

0

私は非常にVisual Studioの新機能ですので、下のオプションが最近追加されているかどうかわかりません 最近、Visual Studio 2013には、ターゲットリストに Win_XPを組み込むための下位互換性オプションがあります。下の画像は役立ちます:

Visual Studio Configuration


そして、私はdumpbinコマンドを実行するときに、私は以下の結果を得ました。

enter image description here


だから今のアプリケーションは、通常の状況下では、Windows XPで実行することができます。
これは役に立ちます。

+1

イメージがありません!!! –

+0

@VidiyaPrasanth:あなたが何を意味しているかわかりません;-)私はそれらを透明に見ることができました。 – sjsam

+0

ありがとう、これは私(小さなCベースのexeを構築するのに役立ちました)。誰かが画像を見ることができない場合に備えて、あなたの答えを編集してテキストの設定を説明することができます。 –

関連する問題