繁体   English   中英

基于Windows 10构建的WPF应用程序将无法在Windows 7(.NET Framework 4.5)上运行[保留]

[英]WPF application, built on Windows 10, will not run on Windows 7 (.NET Framework 4.5) [on hold]

我已经创建了一个针对.NET 4.5的WPF应用程序。 我的开发环境是Win 10上的Visual Studio 2019。

完整的应用程序可以在Windows 10上正常运行,但不能在Windows 7上正常运行。

我正在使用的Windows 7计算机已安装.NET 4.5。 我还使用.NET 4.8尝试了全部操作,但是那也失败了。 它因通用的“ Windows正在尝试解决问题-结束任务 ”消息而崩溃。

我需要对WPF项目做些什么以确保它在Windows 7上运行? 我尝试了各种.NET版本,x64和x86构建以及“任何CPU”。 我不确定我应该寻找什么细节。

我唯一能想到的是,该项目利用了仅在Windows 10中存在的API,但我不知道如何/在何处进行检查。

输入/经验非常感谢,谢谢。

更新资料

刚注意到崩溃提供了以下错误消息(我在中国,所以这是Google翻译的):

///Question signature:
///Problem Event Name: CLR20r3
///Problem Signature 01: echinacarers tefl.exe
///Problem Signature 02: 1.0.0.0
///Problem Signature 03: c60d63f4
///Problem Signature 04: mscorlib
///Problem Signature 05: 4.0.30319.17929
///Problem Signature 06: 4ffa57ca
///Problem Signature 07: 2e91
///Problem Signature 08: 78
///Problem Signature 09: KUTS43RW3WMPE3EWT1R1Z5M5MTM1NR04
///OS version: 6.1.7601.2.1.0.256.1
///Locale ID: 2052
///Other information 1: 9b1d
///Other information 2: 9b1d1a091b7e1696235b9fb28c3ca91a
///Additional information 3: 294f
///Additional information 4: 294f8f1de900b664c678f90b36a33101 
///
///Read the privacy statement online:
///http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0804

更新2

根据评论的要求:

该应用程序需要120小时的TEFL课程。 它具有以下特点:

  • 需要互联网连接
  • 一些内容下载
  • 单击时打开浏览器的URI
  • 一些弹出窗口
  • SQLite数据库

最后一个因素可能是导致问题的原因。

我刚刚尝试在另一台Win7机器上运行它,并且错误消息现在包含以下讲述故事的行:

/// ..
///Problem Signature 04:    SQLite-net
///Problem Signature 05:    1.6.292.0
///Problem Signature 06:    9a4f918c
///Problem Signature 07:    23
///Problem Signature 08:    0
///Problem Signature 09:    SQLite.SQLiteException
///..... 

注意那里的第一行和最后一行。

但是,我尝试将项目的SQLite NuGet软件包降级为较不高级的版本,现在回到第一个。 没有特定的SQLite错误消息。 它只是在问题签名列表中显示mscorlib

我怀疑Nuget软件包可能是问题的根源。 我认为将需要反复试验。

(注意-该项目没有任何其他nuget包-只有SQLite所需的那些)

App.cs添加一个额外的exceptionHandling 之后,我们可能会收到有意义的错误消息。

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        SetupExceptionHandling();
    }

    private void SetupExceptionHandling()
    {
        AppDomain.CurrentDomain.UnhandledException += (s, e) => LogUnhandledException((Exception)e.ExceptionObject, "AppDomain.CurrentDomain.UnhandledException");

        DispatcherUnhandledException += (s, e) => LogUnhandledException(e.Exception, "Application.Current.DispatcherUnhandledException");

        TaskScheduler.UnobservedTaskException += (s, e) => LogUnhandledException(e.Exception, "TaskScheduler.UnobservedTaskException");
    }

    private void LogUnhandledException(Exception exception, string source)
    {
        string message = $"Unhandled exception ({source})";
        try
        {
            AssemblyName assemblyName = Assembly.GetExecutingAssembly().GetName();
            message = $"Unhandled exception in {assemblyName.Name} v{assemblyName.Version} ({source})";
        }
        catch (Exception ex)
        {
            _Logger.Fatal(ex, "Exception in LogUnhandledException");
        }
        finally
        {
            _Logger.Fatal(exception, message);
            MessageBox.Show($"That should not have happened. An unexpected error occurred. Please contact the Support. \n {exception.Message} \n {exception.StackTrace}", "Fatal Error", MessageBoxButton.OK, MessageBoxImage.Error);
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM