2011-09-12 11 views
1

私は単純な.NETコンソールアプリケーションを作成しました。どのように簡単ですか?これは単純です: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フレームワークに対してリリースビルドし、実行可能ファイルを私の顧客の1人に与えました。彼はXPマシン(または彼のWindows 2008サーバー)のコマンドウィンドウでそれを実行すると、(DOS)メモリ不足のエラーが発生します。

私はおそらく私が間違っている可能性があることを理解するために頭を悩ましています。私はもちろん、テストするために私自身のXP環境を持っていないので、私はこの問題を再現することはできません。何か案は?

+0

Windows 7 Professionalをお持ちの場合は、XP仮想マシンであるXPModeをインストールすることができます。これにより、この問題をローカルでテストすることができます。 – ChrisF

+0

私は幾分明らかですが、彼は正しいバージョンの.Netがインストールされていますか? –

+0

もっとコードがありますか? AppDomain.CurrentDomain.UnhandledExceptionのイベントハンドラを記述し、e.ExceptionObject.ToString()の値を表示します。スタックトレースはどこから爆発したかを伝えます。 –

答えて

1

1つのアイデア:顧客に.NET Frameworkがインストールされていない可能性があります。

+0

いいえ、彼はフレームワークをインストールしています。自分の環境で実行している.NETアプリケーションはたくさんあります。しかしこれは唯一のコンソールアプリです。 –

1

仮想マシンでXPを作成できますか?

いくつかのWindowsアップデートでMachine.configが壊れているマシンをいくつか見てきましたが、Outofmemoryエラーではなく、.NETエラーが発生していると思います。

基本ウィンドウだけを表示し、テキストボックス、ボタンをチャックし、ボタンをクリックすると、現在の日付/時間をテキストボックスに入れて環境エラーを排除する.NET Windowsフォームアプリケーションを使用できますか?

私はそれが有用ではないのですが、知っているあなただけの日付に日数を追加する場合、あなたはちょうどあなたが上で実行するために彼に64ビットの実行可能ファイルを与えているDateTime.Now.AddDays(日)

0

を使用することができます32ビットオペレーティングシステム?それは動作しません...

+0

これは(32bitマシン上の64bit exe)愚かな動作を引き起こしません。 –

関連する問題