none
Visual Studio2012で突然エラーが多発しビルドが通らない状況です RRS feed

  • 質問

  • 初めまして。
    情報が不足しているかもしれませんが、大変困っております。
    宜しくお願いします。

    Visual Studio2012を使用していますが、今までビルドが通って
    いたものが突然ビルドエラーが多発しました。

    以下に環境、エラーメッセージ等記載致しますので、
    解決法をご存知の方がいらっしゃいましたら宜しくお願いします。


    OS:windows7 professional
    環境:Visual Studio2012 ultimate
    言語:C#
    状況:ソリューションの中にプロジェクト(クラスライブラリ)が
    多数(100個以上)ありWebサイトがそのクラスライブラリを参照しています。

    エラーメッセージ:(****はプロジェクト名につき伏せています)
    '****.dll'メタデータが見つかりませんでした。
    型または名前空間名'****'は名前空間'****'に存在しません。アセンブリ参照が不足しています。
    型または名前空間名'****'が見つかりませんでした。usingディレクティブまたはアセンブリ参照が不足しています。

    2014年12月29日 5:45

回答

  • 「'プロジェクト名.dll'メタデータが見つかりませんでした」はそのプロジェクトで生成されているはずのdllが見つからない状態で発生します。
    見つからないと参照できないので型または~のエラーも出ます。
    #あるいはそのクラス名を変更や削除してしまって反映を忘れているとかでも出ますが。

    まずは、そのプロジェクトフォルダにdllができているかを確認してみては?
    とりあえず思いつく確認方法は以下です

    • ソリューションエクスプローラーのソリューションを右クリックして構成マネージャーを表示
      表示された一覧でビルドのチェックが外れているプロジェクトが無いかを確認
    • メニューのビルド->ソリューションのクリーンで生成物を一度消す
      DLLプロジェクトを個別にビルドしてみて、それぞれがビルド成功するかを確認。
      DLLがobjやbinフォルダ以下に生成されているかを確認。
    • Webサイトのプロジェクトの参照に表示されるているプロジェクト出力を選んで、プロパティウィンドウで表示されているPathプロパティがおかしなPathを参照していないか確認する。
    • 一度参照を外して、再度参照設定をやり直す
    • VisualStudioのプロパティ->プロジェクトおよびソリューション->ビルド/実行->並行ビルドの最大数を1にしてみる

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答の候補に設定 星 睦美 2015年1月7日 1:52
    • 回答としてマーク kabb38mg 2015年1月12日 8:05
    • 回答としてマークされていない kabb38mg 2015年1月12日 8:06
    • 回答としてマーク kabb38mg 2015年1月12日 8:06
    2014年12月29日 13:05

すべての返信

  • 何を作っているかさえ書いてないし、今提供されている情報だけで解決法を出すのは難しいです。

    今自分が言えるのは以下のことぐらいです。

    エラーメッセージで「アセンブリ参照が不足しています」と言われているのですから、そこはきちんと見直したのでしょうか?

    > 今までビルドが通っていたものが突然ビルドエラーが多発しました。

    問題発生の前後で何かあったのではないか、心当たりはないですか?(質問者さんは意識してなくても Windows Update がかかって .dll のバージョンが変わったとか。以前、そういう問題がありました)

    • 回答の候補に設定 星 睦美 2015年1月7日 1:52
    2014年12月29日 8:10
  • 質問が不慣れで申し訳ありません。

    また、ご回答いただきありがとうございます。参考にさせていただきます。

    2014年12月29日 8:24
  • 「'プロジェクト名.dll'メタデータが見つかりませんでした」はそのプロジェクトで生成されているはずのdllが見つからない状態で発生します。
    見つからないと参照できないので型または~のエラーも出ます。
    #あるいはそのクラス名を変更や削除してしまって反映を忘れているとかでも出ますが。

    まずは、そのプロジェクトフォルダにdllができているかを確認してみては?
    とりあえず思いつく確認方法は以下です

    • ソリューションエクスプローラーのソリューションを右クリックして構成マネージャーを表示
      表示された一覧でビルドのチェックが外れているプロジェクトが無いかを確認
    • メニューのビルド->ソリューションのクリーンで生成物を一度消す
      DLLプロジェクトを個別にビルドしてみて、それぞれがビルド成功するかを確認。
      DLLがobjやbinフォルダ以下に生成されているかを確認。
    • Webサイトのプロジェクトの参照に表示されるているプロジェクト出力を選んで、プロパティウィンドウで表示されているPathプロパティがおかしなPathを参照していないか確認する。
    • 一度参照を外して、再度参照設定をやり直す
    • VisualStudioのプロパティ->プロジェクトおよびソリューション->ビルド/実行->並行ビルドの最大数を1にしてみる

    個別に明示されていない限りgekkaがフォーラムに投稿したコードにはフォーラム使用条件に基づき「MICROSOFT LIMITED PUBLIC LICENSE」が適用されます。(かなり自由に使ってOK!)

    • 回答の候補に設定 星 睦美 2015年1月7日 1:52
    • 回答としてマーク kabb38mg 2015年1月12日 8:05
    • 回答としてマークされていない kabb38mg 2015年1月12日 8:06
    • 回答としてマーク kabb38mg 2015年1月12日 8:06
    2014年12月29日 13:05
  • gekkaさん>

    大変遅くなり申し訳ありません。

    ご回答いただきありがとうございます。

    大変参考になりました。

    実際は参照先のDLLに古いものがあり、それに影響するものがエラーとなり、

    さらにそれに影響するものがエラーとなり、と芋づる式にエラーが多発し、

    質問時のような現象が起きていました。

    不慣れな質問の中、ご回答いただき本当にありがとうございました。

    2015年1月12日 8:11