c# - 安装 Framework 4.5 时以 .NET Framework 4 为目标

标签 c# visual-studio-2010 .net-4.0 .net-4.5 .net-framework-version

我的计算机上安装了 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 绑定(bind)到 VM 中的属性或隐藏代码,使该属性具有公共(public)获取和私有(private)集。 .NET Framework 4.5 可以很好地处理这个问题,即使 Mode=TwoWay 必须忽略 .NET Framework 4 不会忽略设置并引发异常:“TwoWay 或 OneWayToSource 绑定(bind)无法在类型的只读属性‘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-seem-to-work

最佳答案

是时候回答这个问题了。我不是 WPF 方面的专家,不太喜欢这类问题,调试依赖属性问题是一场噩梦。但我很确定你在追鬼。从 3.0 开始,WindowState 一直是一个依赖属性,在 4.5 中它没有发生任何我能看到或听说过的特殊情况。

您收到某种没有人能看到的错误消息,这让您确信它与绑定(bind)有关。我来自密苏里州,Show Me State。好吧,离威斯康星州足够近了。

花更多时间编写代码,为您提供可靠的异常消息和堆栈跟踪,帮助您诊断部署到的机器上的错误,而没有调试器来帮助您找出问题所在。为此,您可以为 AppDomain.CurrentDomain.UnhandledException 事件编写事件处理程序。记录或显示 e.ExceptionObject.ToString() 返回值。它为您提供异常消息和 Holy Stack Trace。如果这没有帮助,请用您看到的内容更新您的问题。

关于c# - 安装 Framework 4.5 时以 .NET Framework 4 为目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13942123/

相关文章:

c# - .NET 中是否维护异步调用的顺序?使用异步等待实现记录器?

c++ - 将 Mat 转换为 QPixmap

windows - 关闭 Visual Studio 2010 时出现问题

.net - Visual Studio 2010 ADO.NET 数据模型与 Linq to SQL

.net - .net 4.0是否仍支持asmx

.net-4.0 - .NET 4.0 线程.任务

c# - ASP.NET Core - 如何检测 IHostedService 是否在运行时崩溃?我可以重新启动它吗?

c# - WPF 中的可扩展文本 block

c# - 抵御 System.Collections.Concurrent.ConcurrentDictionary 中的竞争条件

c# - C# 中的 Fire and Forget Sql Server 存储过程