DotNetDetector #3 1.0.0をリリース

前回、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.UtilitiesDotNetDetectorクラスに定義されている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としプレビュー名を返すようにしました。previewNamenullのときは、プレビュー版でないことを表します。

たとえば、サンプルアプリを.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のリリースと日本語ページとの紹介でした。

コメントを残す