我的计算机上安装了 VS2010 和 VS2012,并安装了 .NET Framework 4.0,然后我将其升级到 .NET Framework 4.5。但是,我仍在开发需要在 .NET Framework 4.0 上运行的应用程序。该项目表示它的目标是 .NET Framework 4(客户端配置文件),这些程序集甚至指向 Referenced Assemblies 下的 .NET Framework 4.0 文件夹。当我将此应用程序移动到只有 4.0 的机器上时,问题就出现了,它不会启动并出现错误,直接的问题是导致WindowState={Binding WindowState}
您无法在 4.0 中执行但您可以在 4.5 中执行的异常。我需要这个来在我的开发框上抛出异常,为什么不呢?我的假设是,尽管我尽了最大努力,但它使用 4.5 dll(如果存在)。如何在不卸载 4.5 的情况下让它真正使用 4.0?
更新
要重现此安装 .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 有什么想法吗?