【问题标题】:UWP Console / GUI hybrid applicationUWP 控制台/GUI 混合应用程序
【发布时间】:2021-09-18 07:57:18
【问题描述】:

我想创建 C# UWP 应用:

  • 在资源管理器中双击后以 GUI 模式启动
  • 在 cmd/powershell 中执行命令后以控制台模式启动(例如:C:\> app_name 显示控制台模式的帮助,C:\> app_name download https://www.url.com/ 从给定网站下载视频)

我知道使用 WPF 可以做到这一点,但我无法使用 UWP 找到类似的信息。

在控制台中执行命令后,我能够使应用程序运行,但随后创建了一个新窗口(没有内容,只有应用程序图标)并且控制台中没有显示来自 Console.WriteLine(str); 的输出。

我可以通过向 Package.appxmanifest 添加几行代码来做到这一点

xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5" in <Package ...>

<Package><Applications><Application>...</Application></Applications></Package>:

<Extensions>
    <uap5:Extension
     Category="windows.appExecutionAlias"
     Executable="app_name.exe"
     EntryPoint="app_name.App">
        <uap5:AppExecutionAlias>
            <uap5:ExecutionAlias Alias="app_name.exe" />
        </uap5:AppExecutionAlias>
    </uap5:Extension>
</Extensions>

现在我只需让文本出现在控制台而不是应用程序窗口中。

【问题讨论】:

  • 您可以参考the official document 了解如何创建通用Windows 平台控制台应用程序。但是,它提到只有 C++/WinRT 和 C++/CX UWP 应用程序可能是控制台应用程序。所以如果你使用C#,我不得不说没有办法做到这一点。
  • @AryaDing-MSFT 可以在 C# 中创建 UWP 控制台应用程序。 (Link to Windows Developer Blog)

标签: c# .net user-interface uwp console


【解决方案1】:

我看到了。您可以添加 Subsystem="console" 功能来检查此问题是否仍然存在,这表示此 UWP 应用是控制台应用。如下:

xmlns:desktop4="http://schemas.microsoft.com/appx/manifest/desktop/windows10/4"
......

  <uap5:AppExecutionAlias desktop4:Subsystem="console">
       <uap5:ExecutionAlias Alias="app_name.exe" />
  </uap5:AppExecutionAlias>

【讨论】:

    猜你喜欢
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-07
    • 2011-10-02
    • 1970-01-01
    相关资源
    最近更新 更多