我当前的应用程序如下所示:
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(&#34; foo&#34;)的输出不会显示。
因此我添加了desktop4:Subsystem="console"
。这导致控制台窗口无论用户是否为用户从startmneu或命令行启动应用程序的应用程序启动,都会无法启动。
我怎样才能确保只从命令提示符开始显示控制台窗口?我是否必须创建第二个uwp项目?
答案 0 :(得分:0)
UWP控制台应用还有许多其他注意事项。例如只有C ++ / WinRT和C ++ / CX UWP应用程序可能是控制台应用程序。它必须以Desktop或ioT项目为目标。 形成你的代码,我可以弄清楚它是UWP应用程序。即使它是UWP应用程序,也无法在两个模型 UI 或控制台中启动它。因为,它可能无法创建窗口。如果您有更多信息,可以参考C reate a Universal Windows Platform console app。