0

コードを投稿しますが、ポイントが表示されません。ブレークポイントを配置すると、コードに到達せず、実行が到達する前にエラーがトリガーされるためです。最初は、.config ファイルで重複している可能性があると考えていましたが、見たことがありません。コードは正しくコンパイルされます。

ありがとう。

これが私が得るエラーです:

Unhandled Exception: System.ArgumentException: An item with the same key has alr
eady been added.
   at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boo
lean add)
   at System.Collections.ObjectModel.KeyedCollection`2.AddKey(TKey key, TItem it
em)
   at System.Collections.ObjectModel.KeyedCollection`2.InsertItem(Int32 index, T
Item item)
   at NDesk.Options.OptionSet.InsertItem(Int32 index, Option item)
   at System.Collections.ObjectModel.Collection`1.Add(T item)
   at NDesk.Options.OptionSet.Add(String prototype, String description, Action`1
 action)
   at manifest_mass_deployment.Program.Main(String[] args)

編集: エラーは NDESK に関連していました。同じ変数を 2 回使用していました。

var p = new OptionSet(){
  { "t|time=", "start time", v=> starttime = v },
  { "s|span=", "span time", v=> spantime = v },
  { "t|thread=", "Fhreads to fork", v=> threads = v },
}
4

6 に答える 6

1

で問題が発生しNDeskます。これがここにある C# 用のコールバックベースのプログラム オプション パーサーである場合、コードが実行される前に何かを実行する可能性があります。コマンドラインオプションを解析しようとしているのかもしれません。

少なくとも、メッセージは明確です:NDesk既存の辞書にキーを追加しようとしています。これがコードに何もない場合は、たとえば、ファイルを読み取り、そこから辞書を作成する自動メカニズムである必要があります。

私が見たところ、NDeskコマンドラインオプションを解析するのに役立つはずです-問題は、同じパラメーターを2回渡していることでしょうか?

于 2012-12-17T13:39:51.773 に答える
1

同じキーを持つアイテムが既に含まれているコレクションにアイテムを追加しているようです。キーネームは一意である必要があります。

于 2012-12-17T13:31:43.643 に答える
0

例外は自明です。すでに存在するキーを追加しようとしています。Visual Studio では、おそらくこれが発生している行が強調表示されます。

そうでない場合は、問題の原因となっている可能性のある構成を変更するか、アプリケーションの実行コードからデバッグを開始できます。

于 2012-12-17T13:32:28.010 に答える
0

問題は、プログラムへの起動引数が重複しているようです。確認してくださいProject Properties -> Debug -> Command Line Arguments

于 2012-12-17T13:32:31.363 に答える
0

An item with the same key has already been added.

まさにその通りだと思います。辞書を作成し、同じキーを 2 回追加しています。

于 2012-12-17T13:33:22.867 に答える
0

Visual Studio が過度に興奮し、本来あるべきではないファイルをキャッシュし始めたために、ブレークポイントがヒットしない状況を見てきました。再構築する前に、ソリューションを確実にクリーンアップしてみてください。それでもうまくいかない場合は、コンテンツを削除してみて[BootDir]:\Users\[UserName]\AppData\Local\Tempください。また、Asp.Net ソリューションを使用している場合は[BootDir]:\Windows\Microsoft.NET\Framework\v[FrameworkVersion]\Temporary ASP.NET Files、Visual Studio が保存しているすべてのファイルを削除する必要があります。

于 2012-12-17T13:35:42.547 に答える