Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的控制台应用程序不显示控制台_C#_Visual Studio_Console Application - Fatal编程技术网

C# 为什么我的控制台应用程序不显示控制台

C# 为什么我的控制台应用程序不显示控制台,c#,visual-studio,console-application,C#,Visual Studio,Console Application,非常奇怪的问题。。。我的解决方案中有两个控制台应用程序,控制台应用程序1,在我运行控制台并将其设置为启动项目时,确实会显示控制台。。。控制台应用程序2,正在运行。。。执行。。。但不显示控制台 代码如下: public class Program { static void Main() { string baseAddress = "http://localhost:8080/"; using (WebAp

非常奇怪的问题。。。我的解决方案中有两个控制台应用程序,控制台应用程序1,在我运行控制台并将其设置为启动项目时,确实会显示控制台。。。控制台应用程序2,正在运行。。。执行。。。但不显示控制台

代码如下:

public class Program
    {
        static void Main()
        {
            string baseAddress = "http://localhost:8080/";

            using (WebApp.Start<StartUp>(url: baseAddress))
            {
                Console.Write("Service Listening at : " + baseAddress);
                System.Threading.Thread.Sleep(-1);
            }
        }
    }

Main
方法返回时,控制台应用程序将终止,除非子线程被标记为前台线程。您的程序可能运行得如此之快,以至于您永远看不到控制台窗口的显示

WebApp.Start
不是阻塞方法,您的
Main
方法中的任何后续调用也不是阻塞方法


只需在“服务监听”消息后添加一个
Console.ReadLine()
调用。不需要
线程。睡眠(-1)
,因为您的代码没有在协作多任务环境中运行。

Main
方法返回时,控制台应用程序将终止,除非子线程标记为前台线程。您的程序可能运行得如此之快,以至于您永远看不到控制台窗口的显示

WebApp.Start
不是阻塞方法,您的
Main
方法中的任何后续调用也不是阻塞方法


只需在“服务监听”消息后添加一个
Console.ReadLine()
调用。不需要
线程睡眠(-1)
,因为您的代码没有在协作多任务环境中运行。

启动设置可能已设置为IIS Express。转到项目属性>调试并将启动设置更改为project。确保将标准工具栏上的调试目标也设置为项目


启动设置可能已设置为IIS Express。转到项目属性>调试并将启动设置更改为project。确保将标准工具栏上的调试目标也设置为项目


尝试关闭Visual Studio并再次打开它

也许这也会帮助其他人,因为同样的事情也发生在我身上

它发生在我在IIS Express上调试ASP.Net核心项目之后。我关闭ASP.Net核心解决方案,然后在不关闭Visual Studio的情况下打开控制台应用程序解决方案,但控制台不会显示。因此,我关闭了VisualStudio,然后再次打开解决方案,控制台出现了


我正在使用Visual Studio Professional 2017版本15.9.20

尝试关闭Visual Studio并再次打开它

也许这也会帮助其他人,因为同样的事情也发生在我身上

它发生在我在IIS Express上调试ASP.Net核心项目之后。我关闭ASP.Net核心解决方案,然后在不关闭Visual Studio的情况下打开控制台应用程序解决方案,但控制台不会显示。因此,我关闭了VisualStudio,然后再次打开解决方案,控制台出现了


我正在使用Visual Studio Professional 2017 15.9.20版

您是否在调试器中浏览应用程序以查看它是否命中控制台。是否写入?是的,我有,它确实,它一开始确实有效,然后我对启动程序进行了更改并重建了它,之后它就不起作用了。向我们展示了两个控制台应用程序的代码。您确定这两个项目都配置为“控制台应用程序”项目吗?PE可执行文件头中有一个标志,告诉Windows在程序启动时显示控制台窗口,如果未设置该标志,则不显示任何窗口,这就是为什么记事本在运行时不显示控制台窗口,但为什么
cmd.exe
显示控制台窗口。如何检查该标志,或者设置该标志您是否在调试器中通过应用程序查看它是否到达控制台。是否写入?是的,我已经,它确实开始工作,然后我对启动进行了更改并重建了它,之后它就不工作了。向我们显示两个控制台应用程序的代码您确定两个项目都配置为“控制台应用程序”吗项目?PE可执行文件头中有一个标志,告诉Windows在程序启动时显示控制台窗口,如果未设置该标志,则不会显示任何窗口,这就是为什么记事本在运行时不显示控制台窗口,但为什么
cmd.exe
会显示控制台窗口。我如何检查该标志,或设置该标志它是如何“不工作”的?你观察到同样的行为了吗?我把Console.ReadLine()放进去;取出线。睡眠(-1)。。。按下cmd 5,它直接进入调试模式。。。但没有窗口我的症状略有不同-在调试中我看到了控制台,在调试外部我没有看到它,但dotnet.exe进程是可见的,我无法编译应用程序而不杀死进程。重新启动Visual Studio后,一切正常。@AndrzejMartyna当F5启动控制台应用程序后,VS未显示控制台窗口时,我遇到了一个问题。不过,VS已修复此问题,非常感谢。我甚至没有想过在你重新启动VS之前,postVisual Studio的重新启动对我也有帮助。在System.Web.Mvc nuget软件包更新后出现此问题是如何“不起作用”的?你观察到同样的行为了吗?我把Console.ReadLine()放进去;取出线。睡眠(-1)。。。按下cmd 5,它直接进入调试模式。。。但没有窗口我的症状略有不同-在调试中我看到了控制台,在调试外部我没有看到它,但dotnet.exe进程是可见的,我无法编译应用程序而不杀死进程。重新启动Visual Studio后,一切正常。@AndrzejMartyna当F5启动控制台应用程序后,VS未显示控制台窗口时,我遇到了一个问题。不过,VS已修复此问题,非常感谢。我甚至没有想过在你重新启动VS之前,postVisual Studio的重新启动对我也有帮助。在System.Web.Mvc nuget软件包更新后是否出现此问题此问题适用于VS2019此问题适用于VS2019
 public class StartUp
    {
        public void Configuration(IAppBuilder appBuilder)
        {
            HttpConfiguration config = new HttpConfiguration();
            config.EnableCors();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional });
            config.Formatters.Clear();
            config.Formatters.Add(new JsonMediaTypeFormatter());
            config.Formatters.JsonFormatter.SerializerSettings =
            new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };
            appBuilder.UseWebApi(config);
        }
    }