什么会导致简单的.NET控制台应用程序在Windows XP下失败?

时间:2011-09-12 22:33:00

标签: .net console windows-xp

我编写了一个简单的.NET控制台应用程序。怎么简单?这很简单:

class Program
{
    static void Main(string[] args)
    {
        if (args.Length == 0)
        {
            Console.Error.WriteLine("Returns a date some number of days in the future or past.");
            Console.Error.WriteLine();
            Console.Error.WriteLine("GETDATE days [format]");
            Console.Error.WriteLine("");
            Console.Error.WriteLine("   days      Specifies the number of days (defaults to 0, may be negative).");
            Console.Error.WriteLine("   format    .NET format string for output, (defaults to \"MM-dd-yyyy\").");
            return;
        }
        string number = (args[0]);
        string format = (args.Length > 1)
                            ? args[2]
                            : "MM-dd-yyyy";

        int days;
        if (!int.TryParse(number, out days))
        {
            Console.Error.WriteLine("Can't parse {0} into an integer.", days);
            return;
        }

        DateTime d = DateTime.Now + new TimeSpan(days, 0, 0, 0);
        try
        {
            string result = d.ToString(format);
            Console.Out.Write(result);
        }
        catch (FormatException)
        {
            Console.Error.Write("{0} is not a valid format.", format);
        }
    }
}

我已经针对.NET 2.0框架发布了这个版本,并将可执行文件提供给了我的一个客户。当他在他的XP机器(或他的Windows 2008服务器)上的命令窗口中运行它时,他得到(DOS)内存不足错误。

我绞尽脑汁弄清楚我怎么可能做错了。我当然没有自己的XP环境来测试,所以我不能复制这个问题。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

一个想法:也许您的客户没有安装.NET Framework。

答案 1 :(得分:1)

您可以尝试使用虚拟机来创建XP吗? (虚拟盒等)

我在一些机器上看到一些Windows更新中出现了损坏的Machine.config,但我认为这只是在机器上出现.NET错误,而不是Outofmemory错误。

您是否可以尝试使用仅提供基本窗口的.NET Windows窗体应用程序,查看文本框,按钮,当您单击按钮时,将当前日期/时间放入文本框中以消除环境错误。

我知道它不是那么有用,但如果您只是在日期中添加天数,则可以使用DateTime.Now.AddDays(天)

答案 2 :(得分:0)

您是否在32位操作系统上运行64位可执行文件?那不行......