設定:Windows server 2008 x64。XXX.exeは有効なWin32アプリケーションではありません
ソフトウェアはクロスプラットフォームのC++ 64bitです。
以前のインストーラは
Cにインストールするためにユーザに尋ねるにデフォルト設定:\プログラムファイル(x86の)最後のリリースのために\会社\バージョン
私はにインストールするには、パスのオーバーライドを使用してインストーラを変更しました
C:\プログラムファイル\のサブプロセスが開始されません。私たちのためのテストを行います\プログラムファイル\会社\バージョン
人は新しいとCにインストールすることを言いました。 C:\ Program Files(x86)\ xxxにインストールを上書きするとすべて正常に動作します。 cmd.exeを実行してC:\ Program Files \ xxxから実行すると、「yyy.exeは有効なWin32アプリケーションではありません」というエラーが表示されます。これもc:¥Program Files(x86)では問題ありません。
顧客もデフォルトの場所にインストールされ、同じエラーが発生します。
ビルド/ devマシンにこれらのエラーは表示されません。それは決して更新されず再起動されないサーバー2008のデモ版(およびVisual Studio Express)を実行します。
"x86"について特別なことがありますか?プログラムファイルに貼り付けられていますか?
注:
これは、サーバ2008 x86_64版である私のdevのマシン上の問題ではありません。
ダンビン/ヘッダーは、これらのプログラムが64ビットであることを明確に示しています。
この時点では答えはありません。 回避策は、Program Files(x86)またはそれ以外の場所にインストールして実行するだけです。ユーザーがプログラムファイルにインストールすべきでないFAQを掲載する予定です(プログラムが核になる場合にはよく見る)。
これはインストーラの問題である可能性があります。これは "quack.exe"の古典的なケースですが、 "Program Files"に適用されます。私が一般的に窓を嫌う理由は十分です。
悪意のある場所のexeファイルを依存関係ビューアで確認してみてください。どのDLLが利用できないのかを教えてください。また、procmonなどを使用して起動時にプロセスを監視し、実行時に何が失敗するかを確認してください。それはあなたに何が欠けているかについてのよりよい考えを与えるはずです。 – eran
ユーザーはcmd.exeからプログラムを実行します。エラーは上記を示すダイアログです。 私が怒っているのは、私自身はこのエラーを絶対に再現できないということです。私はsp2以降に更新しました。 – Brian