在项目属性的“应用程序”选项卡(红色)顶部有 2 个灰色下拉框(绿色),我想使用它们。

我想根据当前的构建配置更改输出类型。当我进行调试构建时,我希望该项目成为控制台应用程序以使用控制台进行调试输出。当我进行发布构建时,我希望该项目成为Windows 应用程序。
那么如何启用灰色框呢?
注意:这是一个 C# 应用程序
我有一个使用控制台的应用程序,但我更改了所有代码以写入文件而不是控制台.我现在希望控制台在运行应用程序时停止显示.我该怎么做呢?我不知道什么是首先打开控制台,即使代码中没有写入任何内容.
我查看了应用程序引用,但找不到正在引用的System.Console.我虽然禁用它会修复它或指出我正确的方向有错误.我不知道还能在哪里看.
我在网上找到的所有其他内容都是关于隐藏控制台的.我希望它不会出现在第一位.
我正在玩微软的UWP AppServiceBridgeSample(这里).
它运行良好,但我想摆脱BackgroundProcess应用程序的控制台窗口.这样做的原因是我BackgroundProcess启动了另一个Win32桌面应用程序并且仅作为中介使用,所以我不想用控制台窗口打扰用户.(是的,它可以最小化,但我宁愿不显示它).
我试图使用此处提到的API隐藏它,但没有运气,控制台窗口仍然可见.也没有将项目的输出类型从.work 切换Console Application到Windows Application.work.
我尝试过的另一件事是将其他BackgroundProcess项目创建为Windows应用程序.它运行正常,直到我调用AppServiceConnection.OpenAsync(),这导致BackgroundProcess应用程序退出强文本,因此无法连接到UWA.
static async void ThreadProc()
{
try
{
AppServiceConnection connection = new AppServiceConnection();
connection.AppServiceName = "CommunicationService";
connection.PackageFamilyName = Windows.ApplicationModel.Package.Current.Id.FamilyName;
connection.RequestReceived += Connection_RequestReceived;
AppServiceConnectionStatus status = await connection.OpenAsync();
//status check etc. ...
}
catch(Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
似乎只能从控制台应用程序打开AppService连接.
所以这是我的两个问题:
AppServiceConnection不会在OpenAsync通话过程中失败吗?我有一个既是 gui 又是控制台的应用程序。
控制台:它从 Windows 计划执行以执行一些自动化任务,因此它使用参数调用
GUI:用于输入配置参数,这是用户执行此操作的一种比控制台更好的方式。
所有这些都很好用。它主要是一个控制台应用程序,如果控制台不带参数打开并且显示配置表单,则该控制台是隐藏的。
问题: 如果我从没有参数的控制台打开它,控制台将被隐藏并显示表单。我如何检测我从什么或从哪里打开应用程序,如果它是从 Windows 中打开的,则隐藏控制台,如果它是从控制台打开的,则显示控制台。
我正在使用命令行应用程序输出类型编写应用程序,以在MOGRE处理实际窗口创建时在控制台中显示调试信息.我想在编译应用程序时隐藏控制台.通过进入项目属性,应用程序选项卡并将输出类型更改为Windows应用程序,可以轻松地显示控制台.这样做时,只会显示MOGRE窗口.
虽然我相信创建一个Windows应用程序并将控制台连接到它时会更加清晰,但是当我想要这种行为时,我仍然很好奇天气可以以编程方式执行此操作.
也就是说,有没有办法以编程方式确定在调试模式下编译时应用程序编译为命令行应用程序,何时在发布模式下编译为Windows应用程序?如果是这样,怎么办呢?
编辑:我不是问如何将控制台附加到Windows窗体应用程序.我把重要的部分放在斜体中,希望能让我更清楚自己想要的东西.