0

という名前のライブラリ プロジェクトがMyLibあり、そこには という名前空間がExtensionsあり、そこには という名前のモジュールがあり、タイプという名前Extension1のメソッドがあります。ext1Method1string -> string

ライブラリ プロジェクトのソリューションには、 という実行可能なコンソール プロジェクトがありますTest。内でTest呼び出すことができMyLib.Extensions.Extension1.ext1Method1 str、正常に動作します。

と呼ばれる完全に別のソリューションを作成し、NewSol1への参照を含めましMyLib.dllNewSol1。中NewSol1には線があります

printfn "%s" (MyLib.Extensions.Extension1.ext1Method1 "Hello, World")

ソリューションNewSol1はエラーなしでビルドされます。しかし、実行可能ファイルを実行すると、次のエラーが発生します。

System.MissingMethodException was unhandled

Message: An unhandled exception of type 'System.MissingMethodException' occurred in NewSol1.exe

Additional information: Method not found: 'Microsoft.FSharp.Collections.FSharpList`1<System.String> MyLib.Extensions.Extension1.ext1Method1(System.String)'.

よろしくお願いします。

4

1 に答える 1

3

ildjarn によって提供されたリンクが質問に答えていますが、ここに簡潔な回答を投稿しています。問題を解決するには、2 つのソリューションの Nuget パッケージが同じであることを確認してください。

私の場合、ライブラリは少し古いバージョンのFSharp.Core. の任意のバージョンに対してライブラリを再コンパイルする自由があったのでFSharp.Core、ライブラリとコンシューマーの両方ですべての Nuget パッケージを更新することにしました。これを行うには、ライブラリ ソリューションを右クリックし、Manage Nuget Packages for Solution...すべてのパッケージを選択して最新の状態にします。

于 2015-12-11T05:41:43.923 に答える