生成类型提供程序的编译时错误
Compile-time error with generative type provider
我 运行 在 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.
在设计时,一切似乎都按预期工作。 (我对提供的类型等有智能感知)
我尝试了建议的解决方法 here,但没有成功。
如何使用容器方法,将所有提供的类型放入一个容器中,然后逐一分离您需要的每个类型?
我在我的很多类型提供程序中使用了它,请查看 iOS 设计器类型提供程序以供参考:https://github.com/xamarin/fsharp-iOS-designer/blob/master/src/Xamarin.iOSProviders/iOSDesignerProvider.fs#L64-L86
原来答案在 SDK 的示例模板中,我只是没有仔细阅读它:
- 应将提供者类型(例如,
SqlEnumProvider
)添加到正在执行的程序集中。
- 应将根类型(例如
SqlEnumProvider<"SELECT * FROM (VALUES(('One'), 1), ('Two', 2)) AS T(Tag, Value)">
)添加到提供的程序集中。
在失败的代码中,我们将根类型添加到两个程序集。
我 运行 在 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.
在设计时,一切似乎都按预期工作。 (我对提供的类型等有智能感知)
我尝试了建议的解决方法 here,但没有成功。
如何使用容器方法,将所有提供的类型放入一个容器中,然后逐一分离您需要的每个类型?
我在我的很多类型提供程序中使用了它,请查看 iOS 设计器类型提供程序以供参考:https://github.com/xamarin/fsharp-iOS-designer/blob/master/src/Xamarin.iOSProviders/iOSDesignerProvider.fs#L64-L86
原来答案在 SDK 的示例模板中,我只是没有仔细阅读它:
- 应将提供者类型(例如,
SqlEnumProvider
)添加到正在执行的程序集中。 - 应将根类型(例如
SqlEnumProvider<"SELECT * FROM (VALUES(('One'), 1), ('Two', 2)) AS T(Tag, Value)">
)添加到提供的程序集中。
在失败的代码中,我们将根类型添加到两个程序集。