Newer
Older
TIASShot / docs / 02_ENV / ENV_01_技術スタック.md

技術スタック (Tech Stack)

開発環境 (Development Environment)

  • IDE: Visual Studio 2022
  • ターゲットフレームワーク: .NET Framework 4.8

NuGet パッケージ (NuGet Packages)

packages.config で管理する.Visual Studio のパッケージ復元で自動取得される.

OpenCvSharp4 関連

  • OpenCvSharp4 (4.13.0): OpenCV の C# ラッパー本体
  • OpenCvSharp4.Extensions (4.13.0): Bitmap 変換等の拡張機能
  • OpenCvSharp4.runtime.win (4.13.0): Windows 向けネイティブランタイム
  • OpenCvSharp4.Windows (4.13.0): Windows Forms 向け統合パッケージ
  • OpenCvSharp4.WpfExtensions (4.13.0): WPF 向け拡張機能

※ 4.13.0 から本体アセンブリの供給が lib/net48 から lib/netstandard2.0 に変わった.これにより System.Memory 等への推移的依存が新たに発生するため,下記の補完ライブラリをテストプロジェクトにも明示的に参照させる必要がある(無いと Mat 操作時に実行時 FileNotFoundException になる).

.NET 補完ライブラリ

  • System.Buffers (4.6.1)
  • System.Drawing.Common (8.0.31)
  • System.Memory (4.6.3)
  • System.Numerics.Vectors (4.6.1)
  • System.Runtime.CompilerServices.Unsafe (6.1.2)
  • System.ValueTuple (4.6.2)

※ System.Drawing.Common と System.ValueTuple を除く 4 件は OpenCvSharp 4.13 の推移的依存であり,バージョンは相互に不可分(System.Memory 4.6.3 が他 3 件の下限を指定している).個別に上げ下げしないこと.

テストプロジェクト TIASshot.Tests (Test Project)

テストプロジェクトも packages.config で管理する(本体と同じレガシー形式・x64).

  • NUnit (4.6.1): テストフレームワーク
    • net48 向けの依存として System.Threading.Tasks.Extensions (4.6.3)・System.ValueTuple (4.6.2) も参照する
  • NUnit3TestAdapter (4.6.0): テストランナー連携(Visual Studio / vstest)
  • Microsoft.NET.Test.Sdk (17.14.1): テスト実行基盤(依存として Microsoft.CodeCoverage 18.10.1 が入る)
  • ※ OpenCvSharp4 / OpenCvSharp4.runtime.win (4.13.0) も参照する.Mat 演算はネイティブ DLL に依存するため,テストプロジェクトも x64 でビルドする.
  • ※ あわせて System.Buffers / System.Memory / System.Numerics.Vectors / System.Runtime.CompilerServices.Unsafe を本体と同一バージョンで参照する(OpenCvSharp 4.13 の推移的依存.packages.config 方式では推移的依存が自動解決されないため明示が要る).

外部 SDK(別途インストールが必要) (External SDKs)

IC Imaging Control SDK (The Imaging Source)

  • 用途: ImagingSource 製カメラの制御(DFK33UX178,DFK23UX249)
  • 名前空間: TIS.Imaging
  • インストール: The Imaging Source の公式サイトから取得する

Lumenera SDK

  • 用途: Lumenera 製カメラの制御(Lw110)
  • DLL: lumenera.api.dll(リポジトリ内に同梱)
  • 別途インストール不要(同梱 DLL を参照)