ファームウェアとライブラリのバージョンを知る術

nanoFrameworkの調査メモ。

バイスに入っているnanoCLRに組み込まれたアセンブリ情報

nanoff

nanoffでは情報取得できず。

いじってみた感触では、、、nanoffはnanoBooter, nanoCLRを書き込むためのツールで、nanoBooter, nanoCLRと通信する機能は無い模様。

Device Explorer

Device Capabilitiesボタンで、多くの情報が取得できる。 ここの「Native Assemblies」が該当。

Native Assemblies:
  mscorlib v100.5.0.18, checksum 0xCCE8376E
  nanoFramework.Runtime.Native v100.0.9.0, checksum 0x109F6F22
  nanoFramework.Hardware.Esp32 v100.0.7.3, checksum 0xBE7FF253
  nanoFramework.Networking.Sntp v100.0.4.4, checksum 0xE2D9BDED
  nanoFramework.ResourceManager v100.0.0.1, checksum 0xDCD7DF4D
  nanoFramework.System.Collections v100.0.1.0, checksum 0x2DC2B090
  nanoFramework.System.Text v100.0.0.1, checksum 0x8E6EB73D
  nanoFramework.Runtime.Events v100.0.8.0, checksum 0x0EAB00C9
  EventSink v1.0.0.0, checksum 0xF32F4C3E
  System.IO.FileSystem v1.0.0.0, checksum 0x3AB74021
  System.Math v100.0.5.4, checksum 0x46092CB1
  System.Net v100.1.5.0, checksum 0x5BAB8CB3
  System.Device.Adc v100.0.0.0, checksum 0xE5B80F0B
  System.Device.Gpio v100.1.0.6, checksum 0x097E7BC5
  System.Device.I2c v100.0.0.1, checksum 0xFA806D33
  System.Device.Pwm v100.1.0.4, checksum 0xABF532C3
  System.IO.Ports v100.1.6.1, checksum 0xB798CE30
  System.Device.Spi v100.1.2.0, checksum 0x3F6E2A7E
  System.Runtime.Serialization v100.0.0.0, checksum 0x0A066871
  System.Device.Wifi v100.0.6.4, checksum 0x1C1D3214
  Windows.Storage v100.0.2.0, checksum 0x954A4192

手元のデバイスに入っているmscorlibは

  • v100.5.0.18
  • checksum 0xCCE8376E

であることがわかる。

コンパイルで使うアセンブリ情報

packages.configには、mscorlibに該当するnanoFramework.CoreLibraryの情報が書かれている。

<package id="nanoFramework.CoreLibrary" version="1.14.2" targetFramework="netnano1.0" />
  • 1.14.2 (←これはNuGet Packageのバージョン)
  • netnano1.0

NuGetパッケージの管理画面の、nanoFramework.CoreLibraryの説明欄にmscorlibのバージョンとchecksumが書かれている。

が、しかし、パッケージバージョンとmscorelibバージョン、checksumが一覧表示できないので、ちょっと不便。

nanoFramework.CoreLibraryの説明欄が書かれている場所

NuGetパッケージのMetadata(.nuspec)に書かれている。

https://nuget.info/packages/nanoFramework.CoreLibrary/1.14.2

NuGetパッケージのMetadataを取得する方法

APIあるっぽい。

learn.microsoft.com

取れた😎

https://api.nuget.org/v3/registration5-semver1/nanoframework.corelibrary/index.json