.NET Frameworkアセンブリのロード
- 更新日2025-08-27
- 5分で読める
VIのフロントパネルまたはブロックダイアグラムから.NETオブジェクトを参照する場合、LabVIEWでそのオブジェクト用の.NETアセンブリをロードできるかどうかを確認します。CLR (Common Language Runtime) は、呼び出す.NET Frameworkアセンブリの検索に必要です。CLRでのアセンブリの配置方法の詳細については、MSDN (Microsoft Developer Network) Webサイトを参照してください。CLRがアセンブリを検索できない場合、LabVIEWは見つからないVIを検索する場合と同様の方法でアセンブリを検索します。LabVIEWはオプションダイアログボックスのパスページで指定するディレクトリで見つからないVIを検索します。フロントパネルまたはブロックダイアグラムで直接参照される.NETオブジェクトの.NETアセンブリを検索できない場合、ロード時間エラーが発生します。実行時に必要な依存性のあるアセンブリをロードできない場合、ランタイムエラーが発生します。
CLRは、プライベート.NETアセンブリをロードする際、実行中のファイルのディレクトリをデフォルト検索パスとして使用します。LabVIEWプロジェクトに属していないVIから.NETオブジェクトを参照する場合、CLRはLabVIEW.exeを実行中の実行ファイルとみなします。したがって、CLRはLabVIEW.exeファイルのあるディレクトリでプライベートアセンブリを検索します。LabVIEWオブジェクトに属しているVIから.NETオブジェクトを参照する場合、CLRはこのプロジェクトを実行中の実行ファイルとみなします。したがって、CLRはプロジェクトディレクトリでプライベートアセンブリを検索します。VIから.NETアセンブリを参照する際、そのアセンブリが.NETに属さない場合は、LabVIEW.exeファイルのあるディレクトリにファイルを置かなくても済むように、VIをプロジェクトに保存することを強くお勧めします。
プロジェクトに属さない.NET FrameworkアセンブリをVIから呼び出す場合、技術的には、アセンブリを呼び出すVIのある同じディレクトリにアセンブリを保存できます。CLRがデフォルトでロードできないアセンブリについては、呼び出しVIのディレクトリを含む特定のVIのディレクトリを検索します。ただし、この場所に保存されたアセンブリを呼び出すと、結果として、.NET Frameworkで名前の競合やその他の予期しない動作が生じることがあります。したがって、この場所にアセンブリを保存することはお勧めしません。
メモリ内のアセンブリの変更を検出する
アセンブリは、LabVIEWによりメモリにロードされた後、ロードしたアプリケーションインスタンスが閉じられるまでメモリに残ります。アセンブリがメモリに残っている間、LabVIEWはディスク上のアセンブリへの変更を検出しません。このため、LabVIEWがアセンブリの変更にアクセスするには、まずメモリ内のアセンブリのバージョンを更新する必要があります。
アセンブリの変更後VIをロードする
.NET SDKで提供されているMicrosoft Visual Studio.NETおよび他の開発ツールでは、厳密な名前をアセンブリに割り当てることができます。同じ厳密な名前のアセンブリは同様であると想定されます。
.NETアセンブリのパスに変更のあるVI、または厳密な名前付きアセンブリのバージョン番号またはカルチャ文字列に変更のあるVIをロードすると、LabVIEWは変更を知らせる警告ダイアログボックスを表示します。一度ロードされると、VIにはタイトルバーとウィンドウメニューに表示された開かれたVIのリストにアスタリスクが含まれます。VIを保存するとアスタリスクが消え、新たな変更を行うとアスタリスクが表示されます。
.NET Frameworkアセンブリのタイムスタンプに変更のあるVIをロードすると、LabVIEWでは警告ダイアログボックスが表示されませんが、VIのタイトルバーにアスタリスクが表示されます。
.NETアセンブリの特定バージョンの選択およびロード方法に関する詳細は、ni.comで技術サポートデータベースを参照してください。