0

FSharp.Data.SqlClient我在与生成SqlEnumProvider类型提供程序合作的一个分支上遇到了问题。当测试项目尝试使用提供的类型时,我收到以下编译时错误:

A problem occurred writing the binary 'C:\code\FSharp.Data.SqlClient\src\SqlClient.Tests\obj\Debug\net451\SqlClient.Tests.dll': Error in pass3 for type FSharp.Data.EnumTests, error: Error in GetMethodRefAsMethodDefIdx for mref = ("Parse", "TinyIntMapping"), error: Exception of type 'Microsoft.FSharp.Compiler.AbstractIL.ILBinaryWriter+MethodDefNotFound' was thrown.

在设计时,一切似乎都按预期工作。(我对提供的类型有智能感知等)

我尝试了这里建议的解决方法,但没有任何乐趣。

4

2 回答 2

1

使用容器方法将所有提供的类型放入一个容器中,然后将所需的每一个都倒出,怎么样?

我在很多类型提供程序中都使用了它,请查看 iOS 设计器类型提供程序以供参考: https ://github.com/xamarin/fsharp-iOS-designer/blob/master/src/Xamarin.iOSProviders/ iOSDesignerProvider.fs#L64-L86

于 2018-10-22T09:00:34.093 回答
1

原来答案在 SDK 中的示例模板中,我只是没有仔细阅读它:

  • SqlEnumProvider应将提供程序类型(例如, )添加到正在执行的程序集中。
  • 根类型(例如,SqlEnumProvider<"SELECT * FROM (VALUES(('One'), 1), ('Two', 2)) AS T(Tag, Value)">)应添加到提供的程序集中。

在失败的代码中,我们将根类型添加到两个程序集中。

于 2018-10-23T13:36:38.443 回答