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);
}

可能的命令之一(由 处理ProcessCommand)调用一个长时间运行的进程,我希望能够通过Console.CancelKeyPress委托使用 CTRL + C 取消该进程。

但是当我这样做时,Visual Studio 会打开一个选项卡,上面写着“mscorlib.dll 未加载”,然后什么也不做 - 控制台保持打开但无响应。

我也尝试在调试之外运行该应用程序,但我找不到可执行文件。

4

1 回答 1

0

转到工具、选项、调试、符号并设置缓存位置。然后在上面点击加载,它会为您获取必要的符号并将它们存储在您提供的缓存位置。

Microsoft 的编译器工具在带有 .pdb 扩展名(程序数据库)的单独文件中创建符号。这允许他们为发布二进制文件创建分离的符号。使用符号服务器,您的 IDE 可以在调试期间获取与特定版本的 DLL 匹配的符号文件。您也可以为自己的产品二进制文件配置此系统,这对于事后调试最终用户机器上的任何崩溃非常有用。

有关使用其公共符号的更多详细信息,请参阅Microsoft 文档

于 2016-04-26T15:42:38.507 回答