前回、DotNetDetector.1.0.0-alpha01をリリースしたことを投稿しました。.NET 5.0-RC1での動作確認もできたので、正式版をリリースします。
バージョン 1.0.0
バージョン1.0.0をリリースしました。パッケージは、二つになります。
- NishySoftware.DotNetDetector
- NishySoftware.DotNetDetector.DNF
前者は実行中のアプリの情報を取得します。アプリのビルド時のターゲットランタイムバージョンや現在実行中のランタイムバージョンを取得することができます。
後者は、システムの情報を取得します。システムにインストールされている.NET Frameworkのバージョンの最大値を取得することができます。
1.0.0-alpha01からの変更は、公開メソッドの一つの引数を変更したことです。
名前空間NishySoftware.Utilities
のDotNetDetector
クラスに定義されているDetectAppRuntimeNetVersion()
メソッドを変更しました。
具体的には、
namespace NishySoftware.Utilities
{
public static class DotNetDetector
{
public static Version DetectAppRuntimeNetVersion(out bool isPreview)
を
namespace NishySoftware.Utilities
{
public static class DotNetDetector
{
public static Version DetectAppRuntimeNetVersion(out string previewName)
に変更しました。
1.0.0-alpha01では、第一引数はout bool isPreview
であり、ランタイムがプレビュー版であるかどうかを返すブール値でした。
1.0.0では、第一引数をout string previewName
としプレビュー名を返すようにしました。previewName
がnull
のときは、プレビュー版でないことを表します。
たとえば、サンプルアプリを.NET 5.0 rc1のランタイム上で実行したときは、下記の結果を出力します。
Output by .NET Core 5.0 app (with .NET Core 5.0.0-rc1 runtime)
ImageRuntimeVersion: v4.0.30319
RuntimeEnvironment: v4.0.30319
Environment.Version: 5.0.0
App target framework type: DotNet
App target framework version: 5.0
App runtime framework version: 5.0.0 Preview (rc.1.20451.14)
Installed .NET framework version: 4.8
この結果で、rc.1.20451.14
がプレビュー名となります。もし、プレビュー版かどうかを判定したい場合は、string.IsNullOrEmpty(previewName)
で判定することができます。この結果がfalse
のときがプレビュー版となります。
DotNetDetectorライブラリーの日本語ページ
ソースコードやライブラリーは、github.comやnugetに公開しています。しかし、情報はすべて英語となります。
日本語のページがないと利用しにくいので、DotNetDetectorの日本語ページをこのサイト内に作成しました。
DotNetDetectorの日本語ページはこちらです。
github.comで公開しているREADME.mdの日本語版も公開しています。
英語版、日本語版ともに、バージョン1.0.0の内容に更新しました。
サンプリアプリの実行結果
次に、実行結果を示します。
NishySoftware.DotNetDetector
パッケージの機能により、実行中のアプリのランタイム情報が表示されているのがわかります。また、.NET 5-rc1を使った場合は、プレビュー名も表示されているのがわかります。
NishySoftware.DotNetDetector.DNF
パッケージの機能により、システムの情報である、Installed .NET framework version:
のバージョンがすべてのアプリで表示されていることがわかります。
.NET Frameworkアプリの実行結果
このコードを、.NET Framework 4.7.2 (net472)をターゲットに設定したコンソールアプリから実行すると以下の結果になります。
ImageRuntimeVersion: v4.0.30319
RuntimeEnvironment: v4.0.30319
Environment.Version: 4.0.30319.42000
App target framework type: DotNetFramework
App target framework version: 4.7.2
App runtime framework version: 4.8.4220.0
Installed .NET framework version: 4.8
前者3行は、プラットフォームのAPIを使って表示した結果なので、先の結果と同じ内容です。後者4行がこのライブラリーを使った結果です。正しくバージョンが判定できています。
.NET Coreアプリの実行結果
同様に、.NET Core 3.1 (netcoreapp2.2)をターゲットに設定したコンソールアプリから実行すると、以下の結果になります。
ImageRuntimeVersion: v4.0.30319
RuntimeEnvironment: v4.0.30319
Environment.Version: 4.0.30319.42000
App target framework type: DotNet
App target framework version: 2.2
App runtime framework version: 2.2.8
Installed .NET framework version: 4.8
.NET 5アプリの実行結果 (.NET 5.0-rc1を使用時)
同様に、.NET 5.0 rc1 (net5.0)をターゲットに設定したコンソールアプリから実行すると、以下の結果になります。
ImageRuntimeVersion: v4.0.30319
RuntimeEnvironment: v4.0.30319
Environment.Version: 5.0.0
App target framework type: DotNet
App target framework version: 5.0
App runtime framework version: 5.0.0 Preview (rc.1.20451.14)
Installed .NET framework version: 4.8
以上、DotNetDetectorライブラリーの1.0.0のリリースと日本語ページとの紹介でした。