とあるIT企業のインフラエンジニア。プライベートでは開発もちょっとやります。
※本ブログの内容はすべて個人の見解であり、所属する企業とは関連ありません。
2023/09/30 暫く更新停止中m
生活・子育て(10)
FaaS(1)
働き方(2)
SaaS(2)
自作PC(6)
IT入門(1)
IaaS(13)
IDaaS(2)
ITIL(1)
PHP(2)
OS(6)
システム監視(1)
コミュニティ(1)
PCアプリ(10)
ストレージ(4)
ブログ(9)
ActiveDirectory(2)
デバイス(7)
旅行(10)
デザイン(3)
カンファレンス(5)
セキュリティ(9)
インフラ(19)
コーディング(11)
ゲーム(28)
インターネット(18)
未分類(8)
334 [今日]
437 [昨日]
【まとめ】VisualStudio2022でフォームアプリを作って単一実行ファイル化するまでの流れ
2023/01/21
PCアプリ
お疲れ様です。
しらせです。
前回、Visual Studio 2019を使ったスタンドアロンアプリの公開までの流れをまとめました。
自宅のPCもWindows11に変えたこともあって、今回はVisual Studio 2022の使い方をまとめます。
備忘録的に、プライベートで使うアプリ向けの最低限の設定と個人的に感じた詰まりポイントをまとめます。
(前回)
【まとめ】VisualStudio2019でフォームアプリを作って公開するまでの流れ
もくじ
アプリの作成
前回と同様に細かいコーディングの内容やデザインは割愛します!
今回使うのは「Visual Studio 2022 Community 2022」です。
インストーラーはMicrosoft公式ページからダウンロードできます。
(参考)Visual Studio 2022 の新機能 | 無料ダウンロード - Visual Studio - visualstudio.microsoft.com
https://visualstudio.microsoft.com/ja/vs/whatsnew/
インストールを終えたらスタート画面からアプリを起動します。
以前の2019のアイコンを忘れましたが、引き続き紫色の∞みたいなアイコンですね。
起動画面で「新しいプロジェクトの作成」をクリックします。
プロジェクトの作成画面です。
私はC#を使うことが多いので言語に「C#」、プラットフォームに「Windows」、プロジェクトの種類に「デスクトップ」を指定すると、以下のようにテンプレートがフィルタされて表示されます。
2019よりも表示名が分かりやすい気がします(?)が、1番上がCore版で2つ目が.Net Framework版ですね。
一番上を使っていきます。
意外にもMicrosoft公式ドキュメントも分かりやすいです。
(参考)Visual Studio で C# を使用して Windows フォーム アプリを作成する - learn.microsoft.com
https://learn.microsoft.com/ja-jp/visualstudio/ide/create-csharp-winform-visual-studio
フレームワークは.Net7.0を使用します。
「作成」をクリック。
プロジェクト名とソリューション名を入力します。
ちなみに、プロジェクト名は作成するアプリケーションの名前としてNamespaceになり、ソリューション名はプロジェクトをまとめる形でソリューションフォルダに配置されます。
デザイナー画面が表示されるといつもの感じになります。
なお、デザイナー画面で左側にツールボックスが表示されていない場合は「表示」メニューから「ツールボックス」で表示されます。
あとはコンポーネントを自由に配置したり、コーディングしたり2019と同じですね。
ただ1点、2019では基本的な参照が入っていた気がするんですが2022からは何も入っていないんですね。
画像の1,2行目は自分で入れました。
ビルドもできました。
この辺りは大きな変更はないですねー。
アプリのプロパティ
ここからは作成するアプリのプロパティを設定します。
「プロジェクト」タブの「xxxのプロパティ」をクリックします。
2019と比べてみると構成が大きく変わってます。(上:2022、下:2019)
個人的に設定が必要そうなポイントを抜き出します。
必要そうな設定
- アプリケーション
- Win32 リソース
- アイコン → アプリのアイコン ※設定したらデフォルトに戻せなそう…
- Win32 リソース
- ビルド
- 全般
- デバッグ シンボル → 生成済みのシンボルはありません
pdbを生成しない場合に。
- デバッグ シンボル → 生成済みのシンボルはありません
- 全般
- パッケージ
- 全般
- パッケージバージョン → 1.0とか。デフォルトは「$(VersionPrefix)」
- 作成者 → テキスト入力
- 会社 → テキスト入力
- 製品 → 製品名とか
- 説明 → テキスト入力
- 著作権 → テキスト入力
- アイコン → Win32リソースのアイコンとは別。アプリのアイコンじゃない。
- アセンブリバージョン → 1.0とか。
- ファイルバージョン → 1.0とか。
- 全般
Win32リソースにあるアイコンは、実際のアプリのアイコンで、デスクトップやタスクバーに表示されるものです。
デフォルトは空欄ですが、一度設定するとプロジェクトファイルから対象を消してもデフォルトに戻せなくなります。。
パッケージセクションには3つのバージョンを指定する欄があります。
「パッケージバージョン」「アセンブリバージョン」「ファイルバージョン」
このバージョンの情報ですが、以下の順で入力されたものが実行ファイルの詳細欄に表示される形でした。
「ファイルバージョン」 > 「アセンブリバージョン」 > 「パッケージバージョン」
例えばファイルバージョンが空欄でアセンブリバージョンが入力されている場合は、アセンブリバージョンが表示されます。
(参考)パッケージのバージョン管理 - learn.microsoft.com
https://learn.microsoft.com/ja-jp/nuget/concepts/package-versioning
公式ドキュメントをしっかり読んでませんが細かい使い分けがあるんでしょうね。
Debug/Releaseビルド
作成したアプリのビルドは、エディタ上部にある実行ボタンから可能です。
ステップインやステップオーバーは今までもありましたが、見慣れない「ホットリロード」というボタンが増えてますね?
デバッグ実行中に変更したコードを実行中に適用させる機能っぽいですが便利ですね。
ビルドされたファイルは以下のフォルダ階層に出力されます。
ソリューションフォルダ
┗プロジェクトフォルダ
┗bin
┣Debug ←Debugビルド
┗Release ←Releaseビルド
ビルド後のフォルダを見てみると、実行ファイル(.exe)以外にも複数ファイル存在してしまっています。
アプリケーション拡張(.dll)も実行ファイルの外に生成されてしまっており、この状態では単一ファイルとしての配布はできません。
※dllと一緒に配布すれば動作はします。
次のセクション「公開/発行」でこれを1ファイルに変更します。
公開/発行
最後は配布の準備です。
前のセクションで単一ファイルになっていない実行ファイルは「発行」の処理で単一ファイルに直します。
Microsoftの公式ドキュメントではなぜかうまく変更ができなかったです。
(参考)単一ファイルの配置と実行可能ファイル - learn.microsoft.com
https://learn.microsoft.com/ja-jp/dotnet/core/deploying/single-file/overview
右上のソリューションエクスプローラーからプロジェクトを右クリックして「発行」をクリックします。
フォルダに対して発行のためのプロファイルを作成します。
作成後に試しに発行してみますが、まだそのままではファイルは別々です。
むしろデバッグ時より増えた気がします。
「すべての設定を表示」のリンクからターゲットランタイムを「移植可能」以外を選択し、ファイル公開オプションから「単一ファイルの作成」にチェックを入れます。
この状態で保存をし、再度発行をすると単一の実行ファイルが「publish」フォルダに生成されます。
もちろん、こちらはWindows限定で移植はできないものになります。
万が一、再度発行を行ってもファイルが単一ファイルにならない場合は一旦すべてを保存した後でVisual Studioを終了して「publish」フォルダの中身を削除してから再度実行すると直る場合があります。
今回は以上で終了ですが、他にも細かい変更点が多いので実際にフリーソフトなどで公開する場合はもう少し調べようと思います。
以上
おつかれさまでした。