C# - Visual Studio在运行时崩溃,外部运行编译的程序工作正常

时间:2015-04-26 18:12:44

标签: c# visual-studio-2013 windows-10

我试图拿起C#(我对C ++感到有些惬意,但是Qt在我脑海中徘徊)但是我遇到了MSV的停止显示问题。

即,有时当我建立&运行我的代码,生成的程序将崩溃,如果我构建它并在IDE之外运行它,它按预期工作。

我在几个不同的程序上遇到过这个问题几次,并且我总是得到相同的错误代码,但结果总是一样的 - 控制台窗口出现但没有被写入;它会挂起一秒钟,然后“vshost32.exe”停止工作'弹出。在错误消息之后,调试选项什么都不做,因为它说它没有配置。

以下是一个完整程序的例子,它给了我这个问题:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            int number1, number2, number3;

            Console.WriteLine("Please enter a number:");
            number1 = int.Parse(Console.ReadLine());

            Console.WriteLine("Please enter another number:");
            number2 = int.Parse(Console.ReadLine());

            Console.WriteLine("Calculating...");
            number3 = number1 * number2;

            switch (number3)
            {
                case 0:
                    Console.WriteLine("The result is equal to zero.");
                    break;
                case 1:
                    Console.WriteLine("The result is equal to one.");
                    break;
                default:
                    Console.WriteLine("The result is not equal to zero or one.");
                    break;
            }

            Console.ReadLine();
        }
    }
}

这里有陌生的地方。

注释掉case语句完全消除了这个问题。它从编辑器编译和运行,并且运行没有问题。但是,我无法看到两个案例陈述导致问题的原因。为了记录,该程序退出代码" -1073741819(0xc0000005)访问冲突"。

只是为了幽默IDE并查看我的代码中是否存在问题,我从这个页面运行了第一个示例程序: http://csharp.net-tutorials.com/basics/switch-statement/ 并且发生了同样的事情。挂起,崩溃,0xc0000005访问冲突。而且,就像之前一样,当我在IDE外部手动运行.EXE文件时,它的工作正常。

我重新安装.NET Framework几次,看看是不是问题而且它不是 - 我甚至尝试从4.5.3回滚到4.5,这只是打破了它。现在我完全难过了,因为只要我不得不离开IDE来运行我的代码,我就无法做很多事情。我正在运行Windows 10(b10041)并且正在使用Visual Studio 2013。

1 个答案:

答案 0 :(得分:0)

在项目中,在调试和发布文件夹中有一个带有exe的bin文件夹。确保编译时exe的日期正在更新。您可能没有使用最新的exe文件。