Что может привести к сбою простого консольного приложения .NET под Windows XP? - PullRequest
1 голос
/ 13 сентября 2011

Я написал простое консольное приложение .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 ]

1 голос
/ 13 сентября 2011

Можете ли вы попробовать виртуальную машину для создания XP?(Виртуальный ящик и т. Д.)

Я видел на нескольких машинах поврежденный файл Machine.config из некоторых обновлений Windows, но я думаю, что это просто делает ошибку .NET на машине, а не ошибку Outofmemory.

Можете ли вы использовать приложение форм Windows .NET, которое просто отображает окно Basic, бросить текстовое поле, кнопку и, когда вы нажимаете кнопку, поместить текущую дату / время в текстовое поле только для того, чтобы устранить ошибки среды.

Я знаю, что это не так полезно, но если вы просто добавляете Дни к Дате, вы можете просто использовать DateTime.Now.AddDays (days)

1 голос
/ 13 сентября 2011

Одна идея: Возможно, у вашего клиента не установлен .NET Framework.

0 голосов
/ 13 сентября 2011

Вы даете ему 64-битный исполняемый файл для запуска в 32-битной операционной системе? Это не сработает ...

...