【问题标题】:Opening image via default viewer in .NET Core通过 .NET Core 中的默认查看器打开图像
【发布时间】:2017-02-18 05:38:24
【问题描述】:

构建了一个控制台应用程序以尝试使用 .NET Core 在 Windows 中打开图像。一直出错。

Process.Start(new ProcessStartInfo(tempFile));

结果:

Win32Exception: 指定的可执行文件不是有效的应用程序 对于这个操作系统平台。

我需要做什么才能在 Windows 的默认查看器(在我的情况下为 Windows 照片查看器)中打开它?目前,我已经求助于显示完整的图像路径来复制粘贴。

如果我使用 .NET 4.6.2,但不是 .NetCoreApp 1.1,它可以工作。我知道这与使其跨平台友好(?)有关,但什么...

谢谢!

【问题讨论】:

    标签: .net-core


    【解决方案1】:

    阻止此操作的不同之处在于 ProcessStartInfo.UseShellExecute 在 .NET Core 上默认为 false,并且无法在 Windows 上进行控制。因此,该程序正在尝试将映像文件作为可执行文件启动,这是不可能的。相反,您实际上可以使用Process.Start 模拟一个shell 命令,以便使用系统的默认查看器打开文件。

    Process.Start("cmd", $"/c {pathToFile}");
    

    同样,xdg-open 可以在 Linux 上使用(一般来说),open 可以在 OSX 上使用。

    【讨论】:

    • 行得通!我看到“/c”开关基本上是“执行字符串指定的命令然后终止”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2019-10-27
    • 2023-01-04
    • 1970-01-01
    相关资源
    最近更新 更多