当平台目标设置为任何CPU,如WPF项目时,代码表现得很奇怪?

时间:2011-08-02 12:52:12

标签: c# wpf console-application aforge

这段代码应该给我一个FilterInfo对象的集合,代表所选类别中的连接设备,在这种情况下是网络摄像头。

FilterInfoCollection collection = new FilterInfoCollection(FilterCategory.VideoInputDevice);

我在控制台应用程序中对此进行了测试,它运行良好,但是当我将代码带入WPF时,它只返回一个对象。

我尝试直接在xaml codebehind和viewmodel中使用它绑定到xaml控件,但结果相同。

这太令人沮丧了 在此先感谢=)

编辑:

我找到原因,WPF项目“Platform Target”设置为“Any CPU”,控制台应用程序设置为x86。 当我将控制台应用程序“平台目标”设置为“任何cpu”时,它完全相同。

但不幸的是,WPF项目在设置为x86时不会运行

3 个答案:

答案 0 :(得分:0)

在这里猜测,但听起来像FilterInfoCollection根据驱动程序是x64还是x86返回差异。

如果强制它在x86模式下编译,那么它就能够检索所有x86驱动程序。

任何CPU模式都将在x64或x86中执行,具体取决于安装的操作系统。如果它是64位操作系统,那么它将以x64模式运行。这意味着它只会返回基于x64的驱动程序,其中听起来只是系统上安装了一个。

关于运行平台目标为x86的WPF应用程序的问题,您应该提供更多详细信息,例如您看到的错误。这里应该没有问题:Setting platform target to x86 on my x64 laptop prevent some WPF types to load properly

答案 1 :(得分:0)

您是否尝试将Target Framework从4.0更改为3.5?因为我有一个类似的问题,当我改变目标框架时它很好。

答案 2 :(得分:0)

我尝试在同一个解决方案中创建一个新的WPF项目,现在它可以工作了。 有时我讨厌充满激情的代码...... = P

感谢您的帮助! 如果这件事再次发生,我会睁大眼睛。