2

我正在尝试学习 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。

4

1 回答 1

0

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

于 2015-04-26T21:30:59.523 回答