我编写了一个简单的.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环境来测试,所以我不能复制这个问题。有什么想法吗?
答案 0 :(得分:1)
一个想法:也许您的客户没有安装.NET Framework。
答案 1 :(得分:1)
您可以尝试使用虚拟机来创建XP吗? (虚拟盒等)
我在一些机器上看到一些Windows更新中出现了损坏的Machine.config,但我认为这只是在机器上出现.NET错误,而不是Outofmemory错误。
您是否可以尝试使用仅提供基本窗口的.NET Windows窗体应用程序,查看文本框,按钮,当您单击按钮时,将当前日期/时间放入文本框中以消除环境错误。
我知道它不是那么有用,但如果您只是在日期中添加天数,则可以使用DateTime.Now.AddDays(天)
答案 2 :(得分:0)
您是否在32位操作系统上运行64位可执行文件?那不行......