我在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.
在设计时,一切似乎都如期而至。(我对所提供的类型具有intellisense等)
我试图解决here的建议,但没有joy。
发布于 2018-10-23 13:36:38
原来答案是在SDK中的示例模板中,我只是读得不够仔细:
SqlEnumProvider)添加到正在执行的程序集中。SqlEnumProvider<"SELECT * FROM (VALUES(('One'), 1), ('Two', 2)) AS T(Tag, Value)">)应该添加到提供的程序集中。在失败的代码中,我们将根类型添加到两个程序集。
发布于 2018-10-22 09:00:34
如何使用容器方法,将所提供的所有类型放置到一个容器中,并对所需的每个类型进行解码?
我在我的许多类型提供程序中使用了这一点,请查看iOS设计器类型提供程序以供参考:https://github.com/xamarin/fsharp-iOS-designer/blob/master/src/Xamarin.iOSProviders/iOSDesignerProvider.fs#L64-L86。
https://stackoverflow.com/questions/52901474
复制相似问题