1

v4.5.1 で .NET コンソール アプリ (C#) を作成しました。私のMain方法は次のようになります。

public static void Main(string[] args)
{
    Console.CancelKeyPress += delegate
                              {
                                  CancelToken.Cancel();
                              };

    var kbTask = Task.Run(async () =>
                                {
                                    while (true)
                                    {
                                        await ProcessCommand(Console.ReadLine());
                                    }
                                }, CancelToken.Token);

    kbTask.Wait(CancelToken.Token);
}

可能なコマンドの 1 つ (によって処理される) は、デリゲートProcessCommandを介して CTRL + C を使用してキャンセルできるようにしたい長時間実行プロセスを呼び出します。Console.CancelKeyPress

しかし、これを行うと、Visual Studio は「mscorlib.dll がロードされていません」というタブを開き、何もしません。コンソールは開いたままですが、応答しません。

また、デバッグ以外でアプリを実行しようとしましたが、実行可能ファイルが見つかりません。

4

1 に答える 1

0

ツール、オプション、デバッグ、シンボルに移動し、キャッシュの場所を設定します。次に、上記でロードを押すと、必要なシンボルがフェッチされ、指定したキャッシュの場所に保存されます。

Microsoft のコンパイラ ツールは、拡張子が .pdb の個別のファイル (プログラム データベース) にシンボルを作成します。これにより、リリース バイナリのデタッチ シンボルを作成できます。シンボル サーバーを使用すると、IDE はデバッグ中に特定のバージョンの DLL に一致するシンボル ファイルを取得できます。このシステムを独自の製品バイナリ用に構成することもできます。これは、エンド ユーザー マシンでのクラッシュの事後分析デバッグに非常に役立ちます。

パブリック シンボルの使用の詳細については、Microsoft のドキュメントを参照してください。

于 2016-04-26T15:42:38.507 に答える