Visual Studio 2022の発行処理で「単一EXEファイル」を作成しました。
作業自体は簡単ですが、フレームワークを間違えるとVisual Studioの基本機能では「単一EXEファイル」はできないようです。
- 「.NET FrameWork 4.8」では単一EXEは作成できません。
- 単一EXEを作成できるのは「.NET 8.0」などの「.NET CORE」です。
調べれば他のツールなどで「.NET FrameWork 4.8」で単一EXEを作成する方法があるのかも知れませんが、僕にはできませんでした。
もしも同じことで調べているなら参考にしてください。
「.NET FrameWork 4.8」での発行処理
他のサイトなどでもVisual Studioでの「単一EXE」作成方法は紹介されていますが、フレームワークが違うと解説通りの画面が表示されません。
以下は「.NET FrameWork 4.8」で発行処理を行った時に表示される画面です。
このまま処理を進めても「単一EXE」は作成できません。
「.NET 8.0」での発行処理
フレームワークが「.NET 8.0」の場合は異なる画面が表示され、以下の手順で進めることで「単一EXE」が作成できます。
手順①:「ソリューションエクスプローラー」>「プロジェクト名」の上で右クリック>「発行」
手順②:ターゲットを選択します、ここでは「フォルダー」を選びました。
手順③:特定のターゲットを選びます、ここでは「フォルダー」を選びました。
手順④:フォルダーの場所を指定して「完了」です。
手順⑤:「完了」の画面を「閉じる」で終了します。
手順⑥:発行の画面が表示されるので、「すべての設定を表示」をクリックします。
手順⑦:プロファイル設定で配置モードを「自己完結」、「単一ファイルの作成」をチェックして「保存」してください。
手順⑧:「発行」でEXEファイルが作成されます。
ターゲットフォルダー内にDLLファイルも作成されますが、EXEファイルだけでプログラムは動きます。
「.NET FrameWork 4.X」と「.NET CORE」の違いについて
詳しいことはわからないのですが、「.NET FrameWork 4.×」と「.NET 8.0」は単純なバージョン違いでなく、別物のようです。
「.NET FrameWork 4.x」はWindows専用のフレームワーク、「.NET7.0」、「.NET 8.0」などは「.NET CORE」に分類され、Windows以外にMacやLinuxでも使用できるクロスプラットホームとなっています。
フレームワークの指定はプロジェクトを作成する時に決定します。
「.NET 8.0」など「.NET CORE」を使うときは「Windowsフォームアプリ」、「.NET FrameWork4.×」を使うときは「Windows フォームアプリケーション(NET Framework)」を選びます。
プログラム作成後に細かいバージョンの変更(「.NET 7.0」から「.NET 8.0」などの変更)はできますが、大きな変更(「.NET FrameWork 4.8」から「.NET 8.0」など)はできません。