【问题标题】:WPF Using .Net 3.1 - Process.Start Excel File Error: "The specified executable is not a valid application for this OS platform."WPF 使用 .Net 3.1 - Process.Start Excel 文件错误:“指定的可执行文件不是此 OS 平台的有效应用程序。”
【发布时间】:2020-07-13 04:15:49
【问题描述】:

我正在尝试在 WPF .NET Core 3.1 应用程序中打开一个 Excel 文件 (.xlsx)。使用 Winforms,我可以做到

process.start("Resources/test.xlsx")

文件将打开。

在 WPF 应用程序中做同样的事情会导致错误

指定的可执行文件不是此操作系统平台的有效应用程序

我使用相同的代码并使用两个应用程序打开相同的文件。只有 Winforms 应用程序可以工作,WPF 会抛出该错误。

.Net 3 中是否有使用System.Diagnostics.Process.Start 处理打开文件的新方法?

【问题讨论】:

    标签: c# wpf system.diagnostics


    【解决方案1】:

    类似的东西

    private void barButtonItem4_ItemClick(object sender, ItemClickEventArgs e)
    {
        // Old way (.NET Framework 4.8)
        // string path = "Resources/test.xlsx";
        // Process.Start(path);
    
        // New way (.NET 6)
        ProcessStartInfo psInfo = new ProcessStartInfo
        {
            FileName = "Resources/test.xlsx",
            UseShellExecute = true
        };
        Process.Start(psInfo);
    }
    

    【讨论】:

    • 感谢您输入问题的代码(忘了我只是输入了一个不好的链接......)。 +1
    【解决方案2】:

    进一步看,似乎在 .Net Core 中 UseShellExecute 值默认为 false。手动将其设置为 true 解决了该问题。这是我用来发现此修复程序的博客文章:https://jeremybytes.blogspot.com/2019/08/converting-net-framework-to-net-core.html

    【讨论】:

      猜你喜欢
      • 2018-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-09
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多