そこで、C#とVisualStudioを使用して簡単な電卓コンソールアプリケーションを作成しました。ここで、デバッグフォルダーの.exeファイルを友人に渡してアプリケーションをテストしました。残念ながら、彼がそれを開こうとしても何も起こりません。
私は彼に、彼が持っている.NetFrameworkを持っているかどうかを確認させました。また、タスクマネージャーなどには何もありません。彼は単に何も起こらないと言います。アプリをAnyCPUで実行できるようにしました。他のコンピューターで問題なく実行してみました。
また、彼はWindows 8を持っていて、SmartScreenをアクティブにしていて、もちろんアラートがポップアップしましたが、彼はそれを強制的に実行すると言ったので、何が悪いのか本当にわかりません。ここで何が起こっているのか知っていただければ幸いです。
SmartScreenを強制することはできません。無効にする必要があります(少なくとも私はそうしなければなりませんでした)。とにかくx84でコンパイルします(64ビットアーキテクチャでもこれを実行できます。*)どのフレームワークをターゲットにしていますか? Windows 8には標準4.5がインストールされており、3.5でプログラムを実行するには、.NET 3.5をインストールする必要があります(自動ポップアップする必要があります)
デバッグの代わりにビルドをリリースしてみてください。 (上部のバーで、[詳細設定]を有効にします。)
* IA64は実行できませんが、AMD64は実行できます。プログラムのアーキテクチャを変更するには:[プロジェクト]、[ビルド]タブに移動し、プラットフォームターゲットがx84に変更するのを確認します。
スマートスクリーンを無効にするには:Windows + QでSmartScreenを検索すると、[メンテナンスセンター]が表示され、左クリックして[Windowsスマートスクリーン設定の変更]をクリックし、最後のラジオボタンを選択します。
私はすべてを大まかに翻訳しました、それは英語で異なって呼ばれるかもしれません
.exeファイル(デバッグまたはリリース)を別のマシンにコピーしたときに同じ問題が発生しましたが、単に機能しませんでした。タスクマネージャーに数秒間表示され、消えて、アプリケーションイベントログにArgumentOutOfRangeExceptionとKernelbase.dllエラーのみが残ります。そこで、ファイルが起動しないマシンにVisualStudioをインストールすることにしました。プロジェクトフォルダを元のマシンとは異なるファイル構造にコピーしてコンパイルを押したところ、(ファイル構造が異なるために)文字列(ファイルパス)を以前よりも短く切り取ろうとしていることがわかりました。したがって、問題はコード自体にあり、.dllや.NETバージョンにはありませんでした。私が助けてくれたことを願っています!
EXEファイルを別のマシンに移動する際にも同様の問題が発生しました。
たくさんの検索を行ったところ、新しいマシン(EXEが機能しなかった)に最新の(またはまったくない)Microsoft Visual Studio C++再頒布可能ファイルがないことが判明しました。
サポートされている最新のVisual C++ダウンロード にアクセスして、自分のマシンに最新のvc_redist
をインストールしました。その直後、EXEは問題なく動作しました。