特定机器上C#console app的奇怪问题

我有最简单的C#控制台应用程序,它只能写一个WriteLine和一个ReadLine。 出于某种原因,它不会在它构建的机器上以独立模式运行。 我尝试在另一个盒子上构建可执行文件,它工作正常。

试图在这台机器上运行它只是挂在那里。 它在VS内部工作正常,而不是从命令行。

试图将VS附加到挂起进程上说“ConsoleApplication1触发了一个断点”,但是看不出问题是什么(它表明断点是ntdll.dll中的_LdrpDoDebuggerBreak @ 0())。

关于如何诊断正在发生的事情的任何想法?

编辑(回答下面的评论):发布和调试都会发生相同的行为。 平台设置为自动。 测试的两台机器都是64位。 它正在开发的是Windows 7,我正在构建的那个(以及它挂起的地方)是Windows 10。

EDIT2:我注意到的其他一些事情是,试图运行应用程序并没有调出一个控制台窗口(因此它在此之前挂起)。 此外,附加到挂起过程后分离也挂起VS.

EDIT3:这是完整的压缩项目:(已删除)。 它包含调试.exe文件以及好奇。 它只是一个带有以下代码的vanilla控制台应用程序项目:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("ASD"); Console.ReadLine(); } } } 

除了WriteLine()和ReadLine()之外,您确定代码中没有任何内容吗? 我没有测试它,但这听起来就像我期望调用Debugger.Break()的行为。

MSDN页面有一个注释:

从.NET Framework 4开始,运行时不再严格控制启动Break方法的调试器,而是向Windows错误报告(WER)子系统报告错误。 WER提供了许多设置来自定义问题报告体验,因此很多因素都会影响WER响应错误的方式,例如操作系统版本,进程,会话,用户,计算机和域。 如果在调用Break方法时遇到意外结果,请检查机器上的WER设置。 有关如何自定义WER的详细信息,请参阅WER设置。 如果要确保无论WER设置如何启动调试器,请务必调用Launch方法。

在它正在工作的机器上,它要么忽略这一行,因为你没有安装开发工具,要么你的设置只是跳过它。 在您正在开发的机器上,设置会有所不同。 可能的费用是基于Windows 7和10的默认值,但我不知道。

终于想通了。 这是我可爱的杀毒软件。 希望这可以帮助将来的某个人,Avast没有提出通常的提示,表明它正在扫描应用程序或隔离它或任何东西。 禁用防护罩(Avast Shields Control – >禁用10分钟)可使应用程序正常工作。 哎呀!

谢谢大家的支持!

有趣的是,它工作的另一台机器仍在运行Avast,但我认为它是一个主要版本。 这适用于版本10.4.2233。