我有一些WinForm代码(.NET 2.0)使用Windows Media Player利用COM(AxInterop.WMPLib.dll和Interop.WMPLib.dll)。
我试图将其推送到.NET 4.0,但它不加载DLL。
似乎4.0不支持WMP的特定版本(或任何版本)。
有谁知道为什么?有没有其他方法来处理它? (在我去WPF之前)
您可以将C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ PrivateAssemblies \ WMPLib.dll和AxInterop.WMPLib.dll复制到bin目录并引用这些程序集。这些程序集是为'AnyCPU'编译的。
如果您的错误日志显示“使用来自C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ config \ machine.config的计算机配置文件”
您正在将32位COM加载到64位进程中。这将导致异常。您需要切换到使用64位版本的Windows Media Player,或将您的过程更改为目标32位。即将构建设置从AnyCPU更改为x86或X64,并相应地引用32位或64位WMP。