Код: Выделить всё
MyProject
|
| (Imports with MEF)
|
MyImplementation
|
| (has reference to)
|
ThirdPartyLib
/ \
/ \ (has refs to)
/ \
USB.dll Bluetooth.dll
Однако на компьютер пользователя (Windows 10, сборка 1607). Я получаю следующие исключения:
System.TypeLoadException: не удалось найти тип среды выполнения Windows "Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult".
System.TypeLoadException: не удалось найти тип среды выполнения Windows "Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult".System.TypeLoadException: не удалось найти тип среды выполнения Windows 'Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult'.
Быстрый поиск одного из этих типов показывает, что он был представлен только в Win 10, сборка 15063. , что объясняет исключение 1607 — и это нормально, потому что на самом деле я не использую функции Bluetooth (я предполагаю, что эти три типа используются Bluetooth.dll. Фактически, если я использую пример приложения, которое имеет прямую ссылку на ThirdPartyLib, оно работает нормально без каких-либо исключений.
У меня есть только контроль над кодом MyProject и MyImplementation. Есть ли способ позволить любому из них (желательно в MyImplementation) игнорировать определенные исключения, чтобы MEF все равно мог составлять части?
(В качестве альтернативы я бы сказал рад, если можно было включить еще одну библиотеку, которая заполнила бы пробелы в этих недостающих типах, но не уверен, что это возможно).
Подробнее здесь: https://stackoverflow.com/questions/791 ... t-required