我的计算机上安装了 VS2010 和 VS2012,并安装了 .NET Framework 4.0,然后将其升级到 .NET Framework 4.5。但是,我仍在开发需要在 .NET Framework 4.0 上运行的应用程序。该项目表示,它的目标是 .NET Framework 4(客户端配置文件),程序集甚至指向引用程序集下的 .NET Framework 4.0 文件夹。当我将此应用程序移动到只有 4.0 的计算机时,问题就出现了,它无法启动并出现错误,直接问题是由以下原因引起的异常WindowState={Binding WindowState}
在 4.0 中无法做到这一点,但在 4.5 中可以做到。我需要这个来在我的开发盒上抛出异常,为什么不呢?我的假设是,尽管我尽了最大努力,它还是使用 4.5 dll(如果存在)。如何才能让它真正使用4.0而不卸载4.5呢?
Update
要重现此情况,请安装 .NET Framework 4.5 并创建一个面向 .NET Framework 4.0 的 WPF 项目。将 WindowState 绑定到 VM 中的属性或后台代码使该属性具有公共获取和私有设置。 .NET Framework 4.5 可以很好地处理此问题,即使 Mode=TwoWay 必须忽略 .NET Framework 4 不会忽略的设置并引发异常:“TwoWay 或 OneWayToSource 绑定无法在类型的只读属性“State”上工作。 .”。在装有 .NET Framework 4.5 的盒子上,它就像一个魅力,在仅装有 .NET Framework 4.0 的机器上尝试一下,它就会爆炸……那么,关于如何在安装 4.5 时真正针对 4.0 有什么想法吗?
在此向 MS 报告错误:https://connect.microsoft.com/VisualStudio/feedback/details/774694/targeting-net-framework-4-0-when-4-5-doesnt-sem-to-work https://connect.microsoft.com/VisualStudio/feedback/details/774694/targeting-net-framework-4-0-when-4-5-doesnt-seem-to-work
是时候抛出这个问题了。我不是 WPF 方面的专家,不太喜欢它来解决这类问题,调试依赖属性问题是一场噩梦。但我非常确信你在追鬼。 WindowState 一直是一个依赖属性,可以追溯到 3.0,在 4.5 中没有发生任何我能看到或听说过的特殊情况。
您收到某种没人能看到的错误消息,这让您相信它与绑定有关。我来自“向我展示之州”密苏里州。嗯,离威斯康星州足够近。
花更多时间编写代码,为您提供可靠的异常消息和堆栈跟踪,帮助您诊断部署到的计算机上的错误,该计算机没有调试器来帮助您找出问题所在。您可以通过为 AppDomain.CurrentDomain.UnhandledException 事件编写事件处理程序来实现此目的。记录或显示 e.ExceptionObject.ToString() 返回值。它为您提供异常消息和神圣的堆栈跟踪。如果这没有帮助,请用您所看到的内容更新您的问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)