web-dev-qa-db-ja.com

「モジュールMyLibrary.dllのシンボルがロードされませんでした」?

ポケモンに関する情報を提供する基本的なアプリを作成して、Windows Phone開発者を学ぼうとしています。これを行うために、ユニバーサルクラスライブラリ(PokeLib.dll)を作成したため、ユニバーサルアプリと互換性があります。同じソリューション内のプロジェクト(「テスト」)でこれをテストしましたが、正常に動作します。 my Github でこれらのコードを見ることができますが、私が知る限りでは、すべて良いです。これら2つのプロジェクトは1つのソリューションに含まれています。 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);
        }
    }

電話エミュレータでこれを実行しようとすると、次のメッセージが表示されます。 。プロジェクトを「デバッグ」としてビルドし、「ジャストマイコードを有効にする」のチェックを外しています。 [シンボル]ペインの下で何をすべきかはわかりませんが、役に立つ場合は、そのスクリーンショットも追加できます。

とにかく、アプリは開きますが、GetDataボタンを押すとフリーズします。その呼び出しは同期的に行われるため、しばらくフリーズすると予想していましたが、これは永続的なものです。ただし、エラー/例外はスローされません。デバッガーは、p.Create()呼び出しにステップインしようとしても応答しません(スクリーンショットのメッセージに起因する可能性があります)。

誰が私が間違っているのか知っていますか?ありがとう!

23
Benjin

[プロジェクトのプロパティ]-> [ビルド]-> [詳細設定]ボタン-> [デバッグ情報]ドロップダウンに移動し、値を「full」に変更できます。

15
Ivan

Visual Studioで、[ビルド]-> [ソリューションのクリーニング]を選択しました。それはこのメッセージを取り除きました

7
arame3333

同じエラーを修正しました。 Visual Studio 2013で[ツール]-> [オプション]-> [デバッグ]-> [シンボル]に移動し、[空のシンボルキャッシュ]を押しました。

5
Departamento B

GACにあるアセンブリがあり、コンパイル/デバッグの前にVisual Studioがそれを削除していなかったときに、このエラーが発生していました。そのライブラリ(dll)を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

これにより警告状態が解決し、もう一度デバッグできるようになりました。

4
tgolisch

デバッグモード用にコンパイルされていない参照DLLを使用してコードをデバッグしています。

デバッグで参照DLLをコンパイルして使用します。

参照されているDLLアドレスをチェックして、正しいDLLを使用していることを確認してください。

2
Ahmet Arslan

特に同じプロジェクトの複数のVSウィンドウを開いていないことを確認してください! :)

1
Nick

このメッセージを回避する唯一の方法は、[デバッグ]> [オプションと設定]> [デバッグ]> [シンボル]に移動し、[除外しない限りすべてのモジュール]というラジオボタンを選択することです。

これが理想的な回避策であるかどうかはわかりませんが、今のところ機能しています。

1
Dave Green

私の場合、同じ.dllを使用している別のバージョンのアプリケーションを実行していました。これにより、GACがデバッグバージョンで更新されなくなりました。タスクマネージャーを使用してプロセスを強制終了しました。

1
Dowlers

メッセージを受け取っていたプロジェクトが、ビルド時に最適化されていることがわかりました。

プロジェクトのプロパティ、[コンパイル]タブ、[高度なコンパイルオプション]に移動し、Enable Optimizationsチェックボックス

DeselectEnableOptimizations

0
chris31389

これが私の修正方法です。

同じページを2つのブラウザーで開いて、最初に1番目のブラウザーを選択してから、最初のブラウザーを閉じずに2番目のブラウザーをデバッグし、そのうちの1つを閉じて修正しました...

0
Roshna Omer

私も同じエラーに直面しました。私の場合、問題はweb.config変換ファイルがdebug.config以外のセットアップをしたかったためです。

ステージブランチを使用してバグを追跡する必要があったため、アクティブソリューション構成ステージとしてセットアップしました。

  • プロジェクトソリューションのプロパティオプションに移動します
  • 右上のConfiguration Managerボタンをクリックします。
  • 次に、ドロップダウンオプションactive solution configurationをドリルダウンし、実行時に実行するプロジェクトの構成(Web)ファイルを選択します。

ステージを選択しましたが、プロジェクトをビルドするとこのエラーが発生し、そのためデバッガーが非アクティブになりました。

しかし、オプションをdebugに戻すと、問題は解決しました。

0
Jitender Kumar
  1. ccleanerを使用してクイッククリーンアップを実行しました。
  2. クリーンなソリューションとプロジェクトの再構築.
  3. &これは私のために働いた。 (私は本当にどのように知りません)

0
Kaushik Thanki

DotPeekを使用してライブラリのPDBファイルを生成し、それをDLLと同じフォルダーに配置できます。コードがオープンソースの場合、もう1つのオプションは、リポジトリのクローンを作成し、プロジェクトをプロジェクトに追加し、依存関係を追加し、ビルド順序を設定して、デバッグを開始することです。

0