“未加载模块MyLibrary.dll的符号”?

我正在尝试通过制作一个提供有关口袋妖怪信息的基本应用来学习Windows Phone开发。 为此,我创建了一个可移植的类库(PokeLib.dll),因此它与通用应用程序兼容。 我已通过同一解决方案(“测试”)中的项目对此进行了测试,并且工作正常。 您可以在我的Github上查看这些代码,但据我所知,这一切都很好。 这两个项目都在一个解决方案中。 对于Windows Phone应用程序的解决方案,我将PokeLib添加为“现有项目”,添加了引用,并编写了几行代码以确保我可以将其称为正常:

MainPage.xaml中:

     

MainPage.xaml.cs中:

  protected override void OnNavigatedTo(NavigationEventArgs e) { p = new Pokemon(1); // gets data for Pokemon #1 (Bulbasaur) } Pokemon p; int counter = 0; private async void GetDataButton_Click(object sender, RoutedEventArgs e) { DataText.Text = "Fetching... Count: " + ++counter; if (counter == 1) // first time button's clicked { await p.Create(); // populates the data container DataText.Text = String.Format("Pokemon #{0}: {1}", p.Id, p.Name); } } 

当我尝试在手机模拟器上运行时,我收到以下消息: 。 我正在将项目构建为“debug”并且未选中“Enable Just My Code”。 我不知道在符号窗格下要做什么,但我也可以添加它的截图,如果它有用的话。

无论如何,应用程序打开,但是当我按下GetData按钮时会冻结。 我预计它会冻结片刻,因为该调用是同步完成的,但这是永久性的。 但是,不会抛出任何错误/exception。 当我尝试进入p.Create()调用时,调试器也没有响应(可能源于屏幕截图中的消息)。

任何人都知道我做错了什么? 谢谢!

您可以转到项目属性 – >构建 – >高级按钮 – >调试信息下拉列表,并将其值更改为“完整”。

在Visual Studio中,我选择了Build – > Clean Solution。 这摆脱了这个消息

我刚刚修正了同样的错误。 我进入了工具 – >选项 – >调试 – >符号,并在Visual Studio 2013中按下了空符号缓存。可能垃圾桶和obj文件夹的做法几乎不同于优雅的方式。

当我有一个GAC中的程序集并且Visual Studio在编译/调试之前没有删除它时,我遇到了这个错误。 我能够通过从GAC中删除该库(dll)来解决它。

 //if pokelib.dll contained assembly: PokeLibrary.Pokemon //and it showed up in the GAC (c:\windows\assembly\) with that assembly name gacutil /u PokeLibrary.Pokemon 

这解决了警告条件并允许我再次调试。

您正在使用未编译为调试模式的引用dll来调试代码。

在debug中编译引用的dll并使用它。

检查引用的dll地址以确保使用正确的dll。

确保没有打开多个VS窗口,特别是同一个项目! 🙂

  1. 关闭视觉工作室。
  2. 使用cclener执行快速清理。
  3. 清洁解决方案和重建项目

这对我有用。 (我真的不知道怎么样)

在我的情况下,我有另一个版本的应用程序运行使用相同的.dll。 这阻止了GAC使用调试版本进行更新。 我通过任务管理器杀了进程。

我可以解决此消息的唯一方法是转到“调试”>“选项和设置”>“调试”>“符号”,然后选择名为“所有模块的单选按钮,除非已排除”。

我不确定这是理想的解决方法,但它现在正在运作。

您可以使用DotPeek为库生成PDB文件,然后将其放在与您的dll相同的文件夹中。 如果代码是开源的,还有一个选项是克隆repo,将项目添加到项目中,添加依赖项,设置构建顺序并开始调试。

我发现我收到消息的项目在构建时正在优化。

我进入了项目属性,编译选项卡,高级编译选项…并取消选中Enable Optimizations复选框

DeselectEnableOptimizations

这是我的修复方法,

我在两个浏览器中打开了相同的页面,首先我选择第一个浏览器然后第二个浏览器进行调试而不关闭第一个浏览器,关闭其中一个修复它…

我也遇到了同样的错误,在我的情况下,问题是因为web.config转换文件,我想设置除debug.config之外。

我必须使用stage分支跟踪错误,因此我将活动解决方案配置设置为Stage

  • 转到项目解决方案的属性选项
  • 单击右上角的Configuration Manager按钮。
  • 现在,深入了解下拉选项活动解决方案配置,并选择配置(Web)文件,供项目在运行时进行操作。

我选择了舞台,当我构建项目时,我收到了这个错误,因为调试器变得不活跃。

但是当我将选项设置回调试时 ,问题就解决了。