Hm.NetCOMの使い方 (nuget編)

nuget経由で取得してくる方が楽かもしれません。

.NET 4.x Frameworkの場合

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

PICTURE

.NET Core 3.1 や .NET 5.0 や .NET 6.0 以降の場合

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

PICTURE

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

TextTemplatingFileGenerator

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

PICTURE

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

PICTURE

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

PICTURE

カスタムツール の項目に

TextTemplatingFileGenerator

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

PICTURE

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

PICTURE

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

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

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

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

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

を厳守してください。

PICTURE

using HmNetCOM;

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

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