隐藏控制台窗口/外部更改项目启动类型

时间:2013-03-25 09:31:59

标签: c# xna startup

我正在使用C#和XNA 4.0开发游戏,我的项目的启动类型是一个控制台应用程序(用于帮助调试高级元素)。

我的问题有两部分:

  1. 是否可以完全隐藏/禁用控制台窗口 在游戏代码中?
  2. 如果没有,是否可以从外部更改启动类型         应用程序(游戏启动器)?
  3. 我知道明显的解决方案是将我的启动类型设置为" Windows Application"对于公共版本,并将其作为调试和开发人员版本的控制台,但我希望用户能够在调试数据出现问题时打开控制台。

3 个答案:

答案 0 :(得分:0)

对我来说听起来像是一个X / Y问题,我会在这里重新考虑您的要求以及您解决问题的方法,您是否真的希望用户在遇到问题时查看命令提示符。

我会考虑编写一个调试类,为您处理所有这些并将其添加到主游戏循环中,以便在需要时可以绘制到屏幕

答案 1 :(得分:0)

您实际需要的是log4netnlog

等记录器

您可以通过Nuget visual studio扩展程序轻松安装。

然后,您可以通过baretail

等查看器监控日志文件

正则表达式搜索并替换Console.WriteLine()

答案 2 :(得分:0)

此堆栈溢出answer似乎表明您可以通过进行一些本机调用来打开控制台窗口。

基本上,您可以将应用的启动类型设置为Windows应用,然后调用AllocConsole向您的应用注册控制台,将stdin,stdout和stderr从进程重定向到控制台。

我仍然同意其他的回答者,某种日志框架会更有意义。如果您使用log4net之类的东西,您可以同时进行调试,在log4net配置中包含一个控制台appender,并在将命令行arg传递给您的应用程序时分配一个控制台。