在我的 x64 笔记本电脑上将平台目标设置为 x86 会阻止某些 WPF 类型正确加载

2023-12-09

我有一台运行 Windows 7 64 位的 x64 计算机。自本周初以来,我的情况似乎很奇怪。

如果我构建并运行一个平台目标设置为 x86 的 WPF 应用程序,则在尝试创建网格时遇到 MissingMethodException:

var g = new Grid();

但是,创建 StackPanel 效果很好:

var s = new StackPanel();

如果我将平台目标切换到 x64 或 AnyCpu,则两个代码都可以正常工作。我正在考虑框架中的损坏的程序集,但它看起来确实很奇怪......有什么想法吗?

Update:

我一直在与 Microsoft 内部 WPF 团队的人员保持联系。然而,他们没有时间查看我的机器来了解问题所在。与此同时,我必须重新安装我的机器才能继续正常工作。感谢大家的帮助。我认为这个问题与 WOW64 功能有关,但很难更准确。如果我找到更多信息,我会更新这个问题。


我也有这个配置,并且在构建使用网格的 x86 应用程序时没有遇到任何问题。

我会卸载您正在使用的 .NET Framework 版本(看起来像 .NET 4.0)并重新安装它。为了彻底起见,您还可以卸载 Visual Studio 2010 并重新安装它(尽管这可能有点过头了)。

该问题必须仅存在于您正在使用的机器上……否则就会有暴民和干草叉之类的……前往华盛顿州雷德蒙德。 :-) 您可以尝试在另一台机器上创建一个示例项目......只是为了您的理智。 :-)

Update

我只是想补充一点,System.Windows.Controls.Grid 位于PresentationFramework 程序集中。查看此文件在您计算机上的存储位置可能会很有趣......看看您是否注意到任何事情。解决方案仍然可能是重新安装......但是嘿,更多信息总是更好。

对于 .NET 4.0,PresentationFramework 程序集位于: C:\ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \PresentationFramework \ v4.0_4.0.0.0__31bf3856ad364e35

对于 .NET 3.0/3.5,PresentationFramework 程序集位于: C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在我的 x64 笔记本电脑上将平台目标设置为 x86 会阻止某些 WPF 类型正确加载 的相关文章

随机推荐