.NET DLLで新しいメソッドにアクセスできない

更新しました Mar 6, 2019

使用製品

ソフトウェア

  • LabVIEW
  • LabWindows/CVI

問題

C#.NET dllを作成しましたが、新しい関数を追加したりパラメータを変更したりして更新すると、LabVIEWから新しく更新したメソッドを選択することができません。 LabVIEWは代わりに古いバージョンを呼び出します。

解決策

LabVIEWの.NETコンストラクタノードは、元のアセンブリを参照し続けます。 コンストラクタノードに新しいアセンブリをロードするには、.NETランタイムに古いアセンブリが表示されていないことを確認する必要があります。  
 

既存の.NETアセンブリに対して新しいバージョンをロードする手順は、以下のとおりです。
 

  1. .NETアセンブリのロードに使用していたVIを含むプロジェクトを閉じます。プロジェクトを使用していない場合はLabVIEWを終了します。
  2. .NETランタイムが見つけられないように元の.dllを移動します。
  3. 新規VIを作成します。コンストラクタノードを配置して、更新した新しい.dllをロードします。
  4. 保存せずにこの新規VIを閉じます。
  5. 元のVIを開くと、新しい.dllをロードするようになります。

追加情報

プロジェクトディレクトリ内に現在ある.dllのコピーを作成し、その名前を新しいバージョンを示すように変更してから、コンストラクタノードでロードし直すこともできます。これは機能的には上記の手順と同じことを行いますが、複数バージョンの.dllがあるとプロジェクトディレクトリに類似ファイルが増えることなります。