1

MATLAB .Net Builderを使用して .Net ライブラリを生成しました。C# では問題なく使用できましたが、F# Interactive で作成したクイック F# ラッパーを使用していくつかのテストを実行しようとしています。

MWArray問題は、 F# Interactive でクラスを使用できないようです。

コマンドを使用してDLLを参照することはできましたが、コマンドの後にインテリセンスを使用#rするとドメインが見つかりません。MathWorksopen

さらに、コードを実行すると、フローで次のエラーが発生すると、次のエラーが発生しますMWArray

セッションを「C:\Program Files\mypath\bin\Debug\MWArray.dll」にバインドしています...

に続く

エラー FS0193: 内部エラー: ファイルまたはアセンブリ 'file:///C:\Program Files\mypath\bin\Debug\MWArray.dll' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。System.IO.FileNotFoundException: ファイルまたはアセンブリ 'MWArray、Version=2.11.0.0、Culture=neutral、PublicKeyToken=e1d84a0da19db86f' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。ファイル名: 'MWArray, Version=2.11.0.0, Culture=neutral, PublicKeyToken=e1d84a0da19db86f' (...) at .$FSI_0009.main@() in C:\Program Files\mypath\ScriptTest.fsx:line 49

WRN: アセンブリ バインディングのログがオフになっています。アセンブリ バインド エラーのログを有効にするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) を 1 に設定します。この機能をオフにするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] を削除します。

エラーのため停止しました

これがどこから来て、どのように問題を解決するのか、私には本当にわかりません。

F# から MATLAB .Net ライブラリの使用に成功した人はいますか?

私の問題を解決するのに役立つ提案はありますか?

4

2 に答える 2

2

私は MatLab と .NET の相互運用性に詳しくありませんが、アーキテクチャを確認しましたか? つまり、64 ビット DLL を 32 ビット プロセスにロードしようとしていないこと、またはその逆を行っていないことを確認してください。また、ネイティブ アセンブリへの P/Invoke 呼び出しを行うマネージ アセンブリを読み込む場合、そのネイティブ DLL は、現在の FSI セッションが実行されているディレクトリにある必要があります。この値は、クラス CurrentDirectoryのプロパティを介して確認および設定できます。System.Environment

于 2011-12-14T18:17:28.067 に答える