【问题标题】:How support UWP commandline AND UWP UI at the same time?如何同时支持 UWP 命令行和 UWP UI?
【发布时间】:2018-11-12 09:12:30
【问题描述】:

我当前的应用如下所示:

public static class Program
{
    //Default code-gen unless we include DISABLE_XAML_GENERATED_MAIN in the build properties.
    static void Main(string[] args)
    {
        IActivatedEventArgs activatedArgs = AppInstance.GetActivatedEventArgs();
        if(ActivationKind.CommandLineLaunch.Equals(activatedArgs?.Kind))
        {
            CommandLineActivatedEventArgs cmdLineArgs = activatedArgs as CommandLineActivatedEventArgs;
            CommandLineActivationOperation operation = cmdLineArgs.Operation;
            string activationPath = operation.CurrentDirectoryPath;
            System.Console.WriteLine("foo");
        }
        else
        {
            global::Windows.UI.Xaml.Application.Start((p) => new App());
        }

    }
}

我的清单:

    <Application Id="App" Executable="$targetnametoken$.exe" desktop4:SupportsMultipleInstances="true">
    <uap5:Extension Category="windows.appExecutionAlias" [...]

根据用户是从命令提示符还是开始菜单启动应用程序,UI 将如图所示显示。但是当用户从 cmd 启动应用程序时,不会显示 Console.WriteLine("foo") 的输出。

因此,我添加了desktop4:Subsystem="console"。这会导致控制台窗口启动,无论用户是否启动了应用程序,用户是从 startmneu 还是命令行启动应用程序。 我如何确保仅通过从命令提示符开始才能显示控制台窗口?我必须创建第二个 uwp 项目吗?

【问题讨论】:

    标签: c# uwp


    【解决方案1】:

    UWP 控制台应用还有许多其他注意事项。例如,只有 C++ /WinRT 和 C++ /CX UWP 应用可能是控制台应用。它必须针对桌面或物联网项目。 形成您的代码,我可以确定它是 UWP 应用程序。而且即使是 UWP 应用程序,也无法在 UIConsole 两种模式下启动它。因为,它可能不会创建窗口。更多内容请参考 Create a Universal Windows Platform console app

    【讨论】:

    • 所以我需要在一个 appx 中发布一个 uwp ui 应用程序和一个 uwp 控制台应用程序?这可能吗?
    • 您无法将两个 uwp 应用程序集成到一个 appx 包中。
    • 那么提供控制台和 UI 体验的唯一方法是发布两个 Windows 商店应用程序?有没有办法同时发布这两种类型的应用程序?
    • 您可以将控制台应用的商店链接添加到普通的uwp应用中,并告诉使用手动从商店安装它。
    猜你喜欢
    • 1970-01-01
    • 2019-05-03
    • 2018-09-09
    • 2019-04-17
    • 1970-01-01
    • 2017-02-18
    • 2017-08-05
    • 2021-01-09
    • 1970-01-01
    相关资源
    最近更新 更多