C# で MyClock Ver 0.10 を作る (2/2)
2017/01/31
初めて作る C# プログラム - MyClock
MyClock が動作するようになりましたが、.NET Framework を必要とする C# アプリに関しては、.NET Framework のバージョンが気になります。
Windows 10 にインストールした Visual Studio Community 2015 の C# で MyClock の新規プロジェクトを作成する時に「対象のフレームワーク」を .NET Framework 4.6.1 に設定しています。
▍.NET Framework と Windows バージョンの関係
.NET Framework には新旧多くのバージョンがあります。開発と同じPCで使う場合は .NET Framework のバージョンを気にする必要がありませんが、別のPCで使う場合はWindowsのバージョンによってはアプリが正常動作しない可能性が考えられます。
そこで、Windows と .NET Framework のバージョンの関係を調べてみました。
⇒ .NET Frameworkのバージョンを整理する (1/2)
⇒ .NET Frameworkの一部バージョンのサポート終了が差し迫る! その対策は? (1/2)
Windows 7 のサポートは 2020年1月15日に終了し、プレインストールされている .NET Framewok 3.5.1 も同日までサポートされるようです。Windows 8.1 / 10 のサポートと、プレインストールされている .NET Framework 3.5.1 / 4.5.2 / 4.6.x は 2023年1月15日までサポートされるようです。
そこで、Windows 7 以降で使えるようにするには、.NET Framework 3.5.1 を対象にしてアプリを作れば2020年1月15日までは問題ないことが分かります。Windows 8.1 以降を対象にするなら、.NET Framework 4.6.2 (本日時点での最新版) を対象のフレームワークにしておけば 2023年1月15日まで問題ないことになります。
さすがに Windows XP をネットに繋いで使っているケースを考慮する必要は無いと割り切れますが、Window 7 は未だに人気が高いので、MyClock は .NET Framework 3.5.1 を前提にしようと思います。
▍対象の .NET Framework バージョンを変更
プロジェクトの「対象のフレームワーク」に設定する .NET Framework バージョンの確認や変更は、プロジェクトのプロパティで行えます。
ソリューションエクスプローラーで、プロジェクト MyClock を選び、

右クリックでメニューが現れ、

[プロパティ(R)] を選ぶと、

プロジェクト MyClock のプロパティが現れます。対象のフレームワークが、デフォルトで .NET Framework 4.6.1 になっていることが確認できます。
これを .NET Framework 3.5 に変更 (3.5 Client Profile ではなくて 3.5) し、プロパティを保存します。変更を有効にするにはソリューションを一旦閉じてから再び開く必要があります。
そこで、全てのファイルを保存後、[ファイル(F)] - [ソリューションを閉じる(T)] を選ぶか、右上の[X] でソリューションを一旦閉じます。そして再びソリューションを開くと、「対象のフレームワーク」の変更が反映されます。
では、[F5] を押してビルド後デバッグモードで実行します。
するとエラーと警告が発生しました。

ⓧ マークがエラーで、これがあるとビルドできません。そこでこのエラー表示の上でダブルクリックしてみると、エラー箇所が表示され、カーソルが Display.cs と Program.cs の冒頭にある
using System.Threading.Tasks;
の Tasks の前にあり、Tasks の下に赤い波線がついています。
この機能が .NET Framework 3.5 ではサポートされていないので、上記2つのファイルでこの行をコメントアウトします。
//using System.Threading.Tasks;
コメントアウトすると、その場でエラー表示が消えます。[F5] を押してビルド&実行してみると、ビルドに成功して MyClock が正常動作しました。
なお、4つの警告がありますが、Microsoft.CSharp と System.Net.Http が見つからないことによります。.NET Framework 4.6.1 には用意されているので組み込まれたが、3.5.1 に変更したら見つからなくなったのが原因のようです。
以下のように、これら2つに警告マークがついています。

今は、これらの機能を使わなくても MyClock は正常動作しているので、この警告を無視することにします。
対象フレームワークを変更したのに参照の対象を自動的に更新できていない、つまり 開発環境がそこまで万能では無いのだと思います。これらを削除することもできますが、将来の機能追加で対象フレームワークをより新しいものに変更した時に、削除したものを自動で追加してくれないかも知れず(動作が怪しい)そのときに苦労したくないので、そのままにしておきます。
これで、MyClock は、対象フレームワーク .NET Framework 3.5 (つまりWindows 7 以降) で動作するようになりました。
▍アセンブリ情報を変更
プロジェクトのプロパティを開き、

[アセンブリ情報(I)...]をクリックすると、デフォルトのアセンブリ情報が出てきます。

ここで、タイトル、製品、著作権を変更してみます。

[OK] で保存。
ここでの設定は、実行ファイル MyClock.exe を右クリックして表示されるプロパティで [詳細] ボタンを押して現れる情報に反映されます。
プロパティ情報が変更されたので、[F5] でビルドしデバッグモードで実行して動作確認します。
デバッグモードで作成された MyClock.exe は、作業フォルダの下にある bin\Debug フォルダにあります。このファイルを右クリックしてプロパティを表示すると、ここにアセンブリ情報が反映されていることが分かります。


▍アイコンを設定
今は既定のアイコンになっています。そこでアイコンを変更してみます。
以下のサイトから無償で使えるアイコンを選んで使うことにします。
FIND ICONS
こんなアイコンにしてみました。

このアイコンデータは、作業フォルダのどこかにコピーしておきます。今回は、作業フォルダに res フォルダ (リソースフォルダ) を作り、そこにアイコンファイルを入れることにします。

さて、これをアプリに登録するには、プロジェクトのプロパティを開き、

アイコンとマニュフェスト(C) にチェックが入っていますが、この下にある(既定のアイコン) の右にある参照ボタンをクリックして、res フォルダ内にコピーした xclock.ico を選択します。

このように、アイコンが登録できました。
こうしておいてビルドすれば、アプリのアイコンが変わります。作業フォルダの下にある bin\Debug\ フォルダを開くと、MyClock.exe のアイコンが時計のアイコンになっています。

表示を「中アイコン」に変えてみると、

こんな感じで、それらしいアイコンになったことが分かります。
ところで、作業フォルダの下にある *cs ファイルがあるところに、アイコンファイルがあります。自動的にここにコピーされるようです。

なお、フォーム Display のプロパティにある Icon がまだ既定のアイコンのままになっていますので、これも変更しておきます。今は FormBorderStyle が FixedToolWindow になっているので、フォームにアイコンは表示されませんが、これを仮に Sizable に変更してみると新しいアイコンになります。FixedToolWindow に戻しておきます。
Debug モードで「リビルド」しておきます。そして [F5] キーで実行して、問題ないことを確認します。
▍Releaseモードでビルド
さて、ビルドには Release モードもありますので、これを使ってみます。

このように「ソリューション構成」を Rlease に変更し、ビルドするとリリースモードで実行ファイルができます。
リリースモードの MyClock.exe は、作業ファイルの下の bin\Release\ の中にあります。

リリースモードで [F5] キーを押すとエラーになって実行できません。リリースモードでビルドするとデバッグ情報が無いのでエラーになります。従って、このフォルダにある実行ファイルを直接実行して動作確認をします。
リリースモードでビルドは、デフォルトで最適化が行われる設定になっています。しかし、デバッグモード、リリースモードいずれの実行ファイルもファイルサイズは 142KBと同じ、この程度の簡単なアプリでは実行速度の違いも分かりません。
一応 リリースモードの実行ファイルを完成形とします。これで、C#で初めて作るアプリ MyClock Ver 0.10 ができました。
▍ダウンロード
⇒ MyClock Ver 0.10 (ソース付き)
▍MyClockの機能追加について
この先の MyClock の機能追加については、初めて作る C# プログラム -MyClock に概要をまとめています。
応援クリックをお願いします。励みになるので...
- 関連記事
-
-
初めて作る C# プログラム - MyClock 2022/10/04
-
C# で MyClock Ver 0.10 を作る (2/2) 2017/01/31
-
C# で MyClock Ver 0.10 を作る (1/2) 2017/01/31
-