2017-11-10 27 views
-1

私はこれまでに読んだことがありますが、公正な解決策をいくつか試しましたが、まだこの問題を解決できていません。c#無効なwin32アプリケーション

32ビットマシンでテストしたとき(私は1つしかテストしていません)、無効な32アプリケーションでスタートアップ時に瞬時にクラッシュし、その他のエラーメッセージやガイダンスの情報はありません。

アプリケーションは、C#.NET 4.5.2です。ビジュアルスタジオ2017に組み込まれています。これをビルド設定でX86に設定しました。アプリケーションは私の64ビット開発マシンで動作します。

私は32ビットのWindows 7仮想マシンを作成し、ソリューションを構築し、出力ビンフォルダ内のすべてをこの仮想32ビットWindows 7マシンにコピーしました。期待通りにうまく動作します。しかし、その正確なフォルダを物理的な32ビットマシンにコピーすると、無効な32ビットアプリケーションと言ってクラッシュします。

私は、アプリケーションが32ビットで動作していることを保証するために、IntPtr.Sizeが4であることを確認するための条件を入れます。

これはリソースが64ビットで構築されていると思うかもしれませんが、そうであれば、なぜ32ビット仮想環境で動作するのでしょうか? O.o

私は試してみるために別の物理32ビットマシンを試してみるつもりです。

私がどのようにトラブルシューティングをしたり、エラーの詳細情報を取得することができるかに関するガイダンスは素晴らしいものです。

物理マシンにはドットネット4.5.2がインストールされており、99.99%vcredist_x86もインストールされています。

+0

x64用に構築された外部アセンブリまたはdllを参照しましたか? – Steve

+0

私は32ビットであるか、少なくともそうでなければならないと思っている限り、かなり少数の外部アセンブリを参照しました。このビルドは32ビット仮想環境(VM웨어)で動作しますが、これはそうではないと私には思われます。 – Sjc311

+0

これをオフトピックとして報告している人は、停止してください。これは、コンパイラが32ビットマシンまたは破損で問題を引き起こす64ビットイメージを正しく引っ張っていることがわかりました –

答えて

0

なぜ私の質問が否定的な点であったか分かりません...しかし、これは今解決されました。

問題はチームビューアーがファイルを転送中に何らかの形で破損していたことです。ファイルを圧縮して転送しようとしましたが、ジップが奇妙に小さく開いていないことに気付きました。だから私は事務所に入り、USBとBAMでスワップを行った。ワーキング。迷惑か何か。