Проект с сгенерированными типами не выполняется на Assembly.GetExportedTypes()

Я работаю над обновлением FSharp.Data.SqlClient до последней версии SDK Type Provider и вижу ошибку при использовании сгенерированных типов. Тестовый проект, который ссылается на многочисленные сгенерированные типы, прекрасно компилируется, но когда я пытаюсь запустить тесты xunit, я получаю следующее исключение:

System.TypeLoadException: Could not load type 'BTL' from assembly 'SqlClient.Tests, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' because the parent does not exist. at System.Reflection.RuntimeAssembly.GetExportedTypes(RuntimeAssembly assembly, ObjectHandleOnStack retTypes) at System.Reflection.RuntimeAssembly.GetExportedTypes() at <StartupCode$FSI_0005>.$FSI_0005.main@()

Я не уверен, что тип BTL относится к - я не вижу ни одного символа с таким именем ни в тесте, ни в источнике поставщика типов. И я подтвердил, что проблема связана с сгенерированными типами - если я закомментирую все ссылки на SqlEnumProvider, но оставлю ссылки на стертые типы, все тесты пройдут.

1 ответ

Обнаружена проблема с генерируемыми единицами измерения типов - базовый тип предоставленных типов был None который вызывал ошибку при отражении над типами сборок. Изменение базового типа на Some typedefof<obj> сделал свое дело и теперь все тесты проходят.

Кстати, таинственный BTL Тип пришел из данных в тестовой базе данных, что кажется очевидным в ретроспективе.

Другие вопросы по тегам