无法在Windows 7 64位上运行32位编译的WPF应用程序

时间:2009-10-31 23:03:30

标签: wpf 64-bit

我在VS2008中创建了一个WPF项目,并使用Any CPU,x64和x86进行编译。任何CPU和x64都可以工作,但是编译到x86时,应用程序在运行VS2008时挂起,并在运行时没有调试时崩溃。使用WinDbg进行调试我可以看到StackOverflowException,有时还会看到与WPF方法相关的MissingMethodException。

常识告诉我们,在运行32位WPF应用程序时,CLR没有加载正确的程序集。我尝试重新安装.NET Framework 3.5 SP1,但它无法解决问题。我不知道如何检查是否加载或使用了正确的组件。

有什么想法吗?

更新:不是真正的解决方案,但我能做的最好的事情就是重新安装Windows 7

3 个答案:

答案 0 :(得分:1)

尝试在解决方案的所有项目中强制使用正确的编译器:

  1. 属性
  2. 构建
  3. 平台目标

答案 1 :(得分:0)

尝试强制Windows始终使用32位CLR并查看它是否仍然崩溃:

C:\ WINDOWS \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Ldr64.exe setwow

-Oisin

答案 2 :(得分:0)

我想我也遇到了这个问题。如果我没记错的话,我遇到了一个问题,即为x86编译了依赖项,主应用程序是为x64编译的,或者反过来。即说我有一个图书馆和一个主要功能的应用程序。我认为他们都需要以相同的方式编译。即我认为你不能混搭。这可能不是完全相同的问题。我会仔细检查解决方案中的所有项目,确保它们都具有相同的设置。