0

我有一个名为 的库项目MyLib,其中有一个名为 的命名空间Extensions,其中有一个名为 的模块Extension1,其中有一个名为ext1Method1类型的方法string -> string

在库项目的解决方案中,有一个名为Test. 在Test我可以打电话的情况下MyLib.Extensions.Extension1.ext1Method1 str,它工作正常。

我创建了一个完全独立的解决方案,称为NewSol1并包含对MyLib.dllin的引用NewSol1。里面有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 提供的链接回答了问题,但我在这里发布了一个简洁的答案:要解决问题,请确保两个解决方案中的 Nuget 包相同。

就我而言,该库使用了稍旧版本的FSharp.Core. 由于我可以自由地针对任何版本重新编译库FSharp.Core,因此我选择更新库和使用者中的所有 Nuget 包。我通过右键单击库解决方案、选择Manage Nuget Packages for Solution...并确保所有包都是最新的来做到这一点。

于 2015-12-11T05:41:43.923 回答