如何同时支持 UWP 命令行和 UWP UI?

我当前的应用程序如下所示:


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".This 导致控制台窗口被启动,无论用户是从 startmneu 还是命令行启动应用程序。如何确保仅通过从命令提示符开始显示控制台窗口?我是否必须创建第二个 uwp 项目?


慕码人8056858
浏览 168回答 1
1回答

白衣染霜花

UWP 控制台应用程序还有许多其他注意事项。例如只有 C++ /WinRT 和 C++ /CX UWP 应用程序可能是控制台应用程序。并且它必须以桌面或物联网项目为目标。形成您的代码,我可以确定它是 UWP 应用程序。而且即使是 UWP 应用程序,也无法在UI或Console两种模型中启动它。因为,它可能不会创建窗口。
打开App,查看更多内容
随时随地看视频慕课网APP