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

时间:2014-11-29 18:20:38

标签: c# .net windows-phone-8 win-universal-app

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

MainPage.xaml中:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <Button Name="GetDataButton" Content="GetData" Click="GetDataButton_Click" Grid.Row="0" HorizontalAlignment="Center"/>
    <TextBlock Name="DataText" Text="Click to get data" Grid.Row="1" Padding="10"/>
</Grid>

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

当我尝试在手机模拟器上运行时,我收到以下消息: 。我正在构建项目&#34; debug&#34;并且“启用我的代码”#34;选中。我不知道在符号窗格下要做什么,但如果它有用,我也可以添加它的截图。

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

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

15 个答案:

答案 0 :(得分:15)

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

答案 1 :(得分:7)

在Visual Studio中,我选择了Build - &gt;清洁解决方案 这摆脱了这个消息

答案 2 :(得分:5)

我刚修正了同样的错误。我去了工具 - &gt;选项 - &gt;调试 - &gt; Visual Studio 2013中的符号和按下的空符号缓存。可能会丢弃bin和obj文件夹的方式非常不同。

答案 3 :(得分:4)

I was having this error when I had an assembly that was in the GAC and Visual Studio was not removing it before compile/debug. I was able to resolve it by removing that library (dll) from the GAC.

//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

This resolved the warning condition and allowed me to debug once again.

答案 4 :(得分:2)

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

  

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

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

答案 5 :(得分:1)

  1. 关闭视觉工作室。
  2. 使用cclener执行快速清理。
  3. 清洁溶液&amp;重建项目
  4. &安培;这对我有用。 (我真的不知道怎么样)

答案 6 :(得分:1)

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

答案 7 :(得分:1)

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

答案 8 :(得分:1)

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

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

答案 9 :(得分:0)

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

答案 10 :(得分:0)

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

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

DeselectEnableOptimizations

答案 11 :(得分:0)

这是我的修复方法,

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

答案 12 :(得分:0)

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

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

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

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

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

答案 13 :(得分:0)

我只是按照以下步骤操作,消息消失了!

  1. 删除解决方案文件夹/子文件夹下的所有\Bin\Debug文件夹
  2. Clearnup 解决方案(右键单击解决方案以选择“Clean Solution”)
  3. 构建/重建解决方案
  4. 完成

答案 14 :(得分:0)

确保您在调试模式下进行调试,而不是在发布模式下进行调试