Ошибка загрузки библиотеки типов взаимодействия VS/.Net с PortableDeviceApiLib
Речь идет о приложении Windows Forms, .Net 4.0, Visual Studio 2010.
Мое приложение обработки изображений использует PortableDeviceApiLib и PortableDeviceTypesLib, используя сгенерированные библиотеки Interop. Это приводит к ошибке загрузки информации о типах, когда на типы PortableDevice ссылаются, ЕСЛИ Я не собираюсь специально для x86. Однако в x86 мои DLLImports из Shell32.dll вызывают ошибку "дисбаланс стека" во время выполнения, когда программа завершается; этот дисбаланс не возникает с другими сборками, такими как AnyCPU.
Другое приложение Windows Forms на том же компьютере не имеет существенных проблем с PortableDeviceApiLib, но не использует Shell32.dll.
Установка в моем приложении обработки изображений не x86 приводит к предупреждению VS о несовместимости "MIDL" и "x86", что может привести к сбоям во время выполнения.
Другая проблема заключается в том, что я использую рекомендацию в Перечисление переносных устройств Windows в C# для декомпиляции, редактирования и перекомпиляции Interop.PortableDeviceApiLib.dll, чтобы позволить перечислять более одного переносного устройства. Похоже, это не влияет на сбои загрузки библиотеки типов.
Я обычно использовал AnyCPU для приложений.Net, как форм, так и WPF. Любые другие идеи о настройках сборки, которые я мог бы попробовать?