.NETアセンブリをロードする



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2015ヘルプ
LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ

VIのフロントパネルまたはブロックダイアグラムから.NETオブジェクトを参照する場合、LabVIEWでそのオブジェクト用の.NETアセンブリをロードできるかどうかを確認します。CLR(Common Language Runtime)は、呼び出す.NETアセンブリの配置に必要です。CLRでのアセンブリの配置方法の詳細については、MSDN(Microsoft Developer Network)ウェブサイトを参照してください。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 Frameworkに属さない場合、ナショナルインスツルメンツでは、プロジェクトにこのVIを保存することで、LabVIEW.exeファイルがあるディレクトリにファイルを置かないことを強くお勧めします。

プロジェクトに属さないVIから.NETアセンブリを呼び出す場合、技術的にはこのアセンブリを呼び出しVIと同じディレクトリに保存できます。CLRがデフォルトでロードできないアセンブリについては、呼び出しVIのディレクトリを含む特定のVIのディレクトリを検索します。ただし、この場所に保存された呼び出すアセンブリは、結果として名前の競合やその他の予期しない.NET動作を発生させることがあります。したがって、ナショナルインスツルメンツはこの場所にアセンブリを保存することはお勧めしません。

メモリ内のアセンブリの変更を検出する

アセンブリは、LabVIEWによりメモリにロードされた後、ロードしたアプリケーションインスタンスが閉じられるまでメモリに残ります。アセンブリがメモリに残っている間、LabVIEWはディスク上のアセンブリへの変更を検出しません。このため、LabVIEWがアセンブリの変更にアクセスするには、まずメモリ内のアセンブリのバージョンを更新する必要があります。

アセンブリの変更後VIをロードする

NET Framework SDKで提供されているMicrosoft Visual Studio .NETおよび他の開発ツールは厳密な名前をアセンブリに割り当てることができます。同じ厳密な名前のアセンブリは同様であると想定されます。

.NETアセンブリのパスに変更のあるVI、または厳密な名前付きアセンブリのバージョン番号またはカルチャ文字列に変更のあるVIをロードすると、LabVIEWは変更を知らせる警告ダイアログボックスを表示します。一度ロードされると、VIにはタイトルバーとウィンドウメニューに表示された開かれたVIのリストにアスタリスクが含まれます。VIを保存するとアスタリスクが消え、新たな変更を行うとアスタリスクが表示されます。

.NETアセンブリのタイムスタンプに変更のあるVIをロードすると、LabVIEWは警告ダイアログボックスを表示しませんが、VIのタイトルバーにアスタリスク表示が出ます。

ヒント  メモリ内の.NETアセンブリダイアログボックスを参照して、正しいバージョンのアセンブリがロードされていることを確認します。

.NETアセンブリの特定バージョンの選択およびロード方法に関する詳細は、ni.com/技術サポートデータベースを参照してください。



この記事は役に立ちましたか。

役に立たなかった