NI製品ディスカッション

キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

同じアセンブリの異なるバージョン

解決済み
解決策を見る

現在、Visual Studio2008 C#でGPIBを制御するプログラムを作成することになり、

サイトを見ながらドライバをダウンロードし、DotNET3.5用のサンプルプログラムをビルドして

動作させようとしております。

 

ドライバのバージョンは「3.1.2」です。

サンプルプログラムは「SimpleReadWrite」を使用しております。

 

先ずプロジェクトを開いた段階で、「 参照コンポーネント 'NationalInstruments.Common' が見つかりませんでした。 」のワーニングが
表示されるため、参照設定でインストール先のフォルダ内に存在する以下のDLLを参照し、リビルドしました。

 

「インストール先フォルダ\National Instruments\MeasurementStudioVS2008\DotNET\Assemblies\Current\NationalInstruments.Common.dll」

 

リビルドしたところ今度は、「 同じ依存アセンブリの異なるバージョン間での競合が見つかりました。 」のワーニングが出ます。

実際にそのまま動かしてみたところ、正常に動いてはいるのですが、

参照設定で追加したDLLは.framework3.5用のDLLではないのでしょうか?

 

何か情報のお持ちの方は、ご教授頂ければ幸いです。

 

 

 

 

0 件の賞賛
メッセージ1/3
20,401件の閲覧回数

まろ

 

 

日本ナショナルインスツルメンツの早田と申します。

 

 

まず、ご質問の回答としては、今回まろ様が参照設定で追加されたアセンブリは、.NET Framework 3.5用のものです。

今回の問題は、「National Instruments.Common.dll」そのもののバージョンの相違に起因しています。

 

 

ご指摘を受け、私の方でもNI-488.2 3.1.2に付属の.NET 3.5用のサンプル「SimpleReadWrite」を確認してみましたが、ご指摘のものと同じアセンブリの参照エラーが生じていました。

 

2014-07-17 14-10-51.png

(スクリーンショットではVB .NET 3.5用のサンプルとなっていますが、VC#でも同様です)

 

これは、実際にはバージョン13.0.35.188National Instruments.Common.dllが参照されているにも関わらず、NI-488.2 3.1.2に同梱されるNational Instruments.Common.dllがバージョン13.0.35.190となっているためであると考えられます。

このようなバージョンの相違が生じている原因は現在調査中ですが、まろ様が実施された様に、「インストール先フォルダ\National Instruments\MeasurementStudioVS2008\DotNET\Assemblies\Current\NationalInstruments.Common.dll」を参照に含めていただけば、サンプルは実行できるようになります。

そして、バージョン13.0.35.188National Instruments.Common.dllが参照された際に、自動的にバージョン13.0.35.190のそれを参照する様な設定をプロジェクトに加えてやれば (「同じアセンブリの」の警告メッセージをダブルクリックして出現するダイアログで「はい」を選択すると、このような設定のためのapp.configがプロジェクトに追加されます)、警告は解消されます。

 

 

ご迷惑をお掛けし申し訳ございませんが、上記の対処で警告の回避を実施いただけないでしょうか。

 

 

日本ナショナルインスツルメンツ

技術担当 早田

0 件の賞賛
メッセージ2/3
20,330件の閲覧回数
解決策
トピック作成者まろが受理

早田様

 

返信ありがとうございました。

DLLのバージョンが異なっていたのですね。

了解いたしました。

 

警告に関してはapp.configで回避するようにいたします。

0 件の賞賛
メッセージ3/3
20,322件の閲覧回数