使用PortableDeviceApiLib的VS / .Net Interop Type库加载失败

时间:2014-09-12 17:27:15

标签: .net visual-studio-2010 interop shell32

这是关于Windows窗体应用程序,.Net 4.0,Visual Studio 2010。

我的映像应用程序使用生成的Interop库使用PortableDeviceApiLib和PortableDeviceTypesLib。当引用PortableDevice类型时,这会导致类型信息加载失败,除非我专门为x86构建。但是,在x86中,来自Shell32.dll的DLLImports导致运行时堆栈不平衡"程序终止时出错;其他构建不会出现这种不平衡,例如AnyCPU。

同一台机器应用程序上的另一个Windows窗体应用程序没有显示PortableDeviceApiLib的重大问题,但它不使用Shell32.dll。

使用x86之外的映像构建我的映像应用程序会导致VS警告关于' MIDL'与' x86'不兼容性可能导致运行时故障。

另一个问题是,我正在使用Enumerating Windows Portable Devices in C#中的建议 反编译,编辑和重新编译Interop.PortableDeviceApiLib.dll以允许枚举 不止一个便携式设备。这似乎不会影响类型库加载失败。

我通常使用AnyCPU用于.Net应用程序,包括Forms和WPF。关于构建设置的任何其他想法我可以试试吗?

0 个答案:

没有答案