如果在4.5.0框架上运行针对4.6.0的应用程序,则没有异常/警告

时间:2018-11-23 14:27:42

标签: c# .net wpf .net-4.0 .net-framework-version

有人知道如何解决这种行为吗?

我已经创建了针对4.6.0的简单应用程序(以重新测试它是否可以与任何.net应用程序重现),并在具有4.5.2(或4.5.0)框架的Windows 7和Windows 8.1(vms)上运行它最新安装。 问题是启动应用程序时没有错误或警告显示(您可以看到这样的过程,但是稍后该过程消失了)。如果您在框架3.5上运行相同的应用,则会看到下一个标准警告:enter image description here。抱歉,这是法语iso,但是我应该清楚什么意思。

如果缺少必需的框架,我需要向用户显示一些警告,因为我们将框架重新定位为最新。

app.config包含下一行:

<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />

更新: 这只是简单的应用程序4.6.0的示例,我将其用作警告测试。应用使用System.Reactive中的Subject,目标是4.6.0

MainWindow.xaml.cs:

public partial class MainWindow : Window
{

    private Subject<int> sbj = new Subject<int>();
    public MainWindow()
    {
        InitializeComponent();
        Task.Delay(100).ContinueWith(_=>test());
        sbj.ObserveOnDispatcher().Subscribe(onNext);
    }

    private void onNext(int v)
    {
        this.myBox.Text =v.ToString();
    }

    private void test()
    {
        foreach (var i in Enumerable.Range(0, 100))
        {
            sbj.OnNext(i);
            Thread.Sleep(500);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您的应用程序在尝试使用显式绑定到4.6版的方法或类之前不会失败。

如果希望它尽早失败,只需检查应用程序启动时安装的.net Framework版本。有关如何操作,请参见此问题。

How can I find the version of .NET run-time programmatically?