最終更新日 2024-09-25

Hm.NetCOMの使い方 (nuget編)

基本的には、nuget経由で取得してくることを推奨します。

.NET 4.x Frameworkの場合

Nuget から取得してくるだけで、T4 Template による変換も実行されます。
これだけで、使える状態になります。

.NET 5.0 - .NET 8.0など .NET Core系の場合、TextTemplatingFileGeneratorの設定が必要

Nuget から取得してくるだけでは、T4 Template は実行されません。
プロジェクトへと加えられた HmNetCom.tt をクリックして、下図のように
プロパティペインを見ます。

カスタムツール という項目があるので、ここに

TextTemplatingFileGenerator

と入力してます。
入力が完了する(=プロパティペインの他の場所なりどこなりにマウスを移動させる)と、
自動的にテンプレートの変換が行われ、以降使える状態となります。

自動的に変換が始まらない場合は、メニューのビルドより「すべてのT4テンプレートの変換」を実行してください。

TextTemplatingFileGenerator を入力していないのに最初からプロジェクトのトップにHm.NetCOM.csがある場合

このようにプロジェクトのトップに「Hm.NetCOM.cs」があるのは間違った状態です。
キャッシュが読み込まれてしまっている状態ですので、一度プロジェクトトップの「Hm.NetCOM.cs」は削除します。

カスタムツール の項目に

TextTemplatingFileGenerator

を入力して完了(=プロパティペインの他の場所なりどこなりにマウスを移動させる)しましょう。

自動的にテンプレートの変換が行われ、以降使える状態となります。

プロジェクトが変われば、必ず「HmNetCom.tt」のT4テンプレートの変換が必要

「HmNetCOM.cs」を生成する際に、「dllと1対1で紐付けるべきGUID」が生成されます。
このため、異なる.dllファイル(=新たなC#プロジェクト)に対して、HmNetCOMを利用する度に、
この「すべてのT4テンプレートの変換」を実行
してください。

「HmNetCOM.cs」を異なる.dllへと流用してはいけません。
dllの実体が異なるのに、同じGUIDを持つ複数のクラスが生まれてしまうためです。

「HmNetCOM.tt」だけを別のプロジェクトにもっていって、流用するのはOKです。

新しいC#プロジェクトの度に、「HmNetCOM.tt」から「すべてのT4テンプレートの変換」を改めて実行し、
新たに生成された「HmNetCom.cs」を使用する。

既に生成済みの「HmNetCOM.cs」を別プロジェクトにコピペしないこと。
GUIDの競合が発生してしまいます。

を厳守してください。

using HmNetCOM;

必須ではありませんが、「using HmNetCOM」として名前空間を using するのが一般的な使用方法となるかと思います。

MyTest.cs
using System;
using System.Diagnostics;
using System.Reflection;
using System.Runtime.InteropServices;
using HmNetCOM;